/*
 * SpechShop Admin Theme para sipswoole
 * Identidade baseada no painel autenticado SpechShop:
 * dark control center, cards flat premium, azul institucional,
 * verde operacional/financeiro e ciano para monitoramento.
 */

:root {
    /* Base SpechShop */
    --spech-bg: #0B0F14;
    --spech-bg-2: #0D1117;
    --spech-surface: #111722;
    --spech-surface-2: #151B26;
    --spech-surface-3: #1A2230;
    --spech-sidebar: #0A0E14;
    --spech-topbar: #0E131B;

    --spech-text: #F8FAFC;
    --spech-text-muted: #A7B0C0;
    --spech-text-soft: #7C8798;

    --spech-primary: #6e98fc;
    --spech-primary-2: #3B82F6;
    --spech-primary-soft: rgba(45, 107, 255, .14);

    --spech-success: #22C55E;
    --spech-success-soft: rgba(34, 197, 94, .14);

    --spech-info: #22D3EE;
    --spech-info-soft: rgba(34, 211, 238, .12);

    --spech-warning: #FACC15;
    --spech-warning-soft: rgba(250, 204, 21, .13);

    --spech-danger: #EF4444;
    --spech-danger-soft: rgba(239, 68, 68, .14);

    --spech-border: rgba(120, 140, 170, .22);
    --spech-border-soft: rgba(120, 140, 170, .13);
    --spech-shadow: 0 16px 40px rgba(0, 0, 0, .22);
    --spech-shadow-soft: 0 8px 22px rgba(0, 0, 0, .16);

    /* Bootstrap bridge */
    --bs-body-bg: var(--spech-bg);
    --bs-body-color: var(--spech-text);
    --bs-primary: var(--spech-primary);
    --bs-success: var(--spech-success);
    --bs-info: var(--spech-info);
    --bs-warning: var(--spech-warning);
    --bs-danger: var(--spech-danger);
    --bs-secondary-color: var(--spech-text-muted);
    --bs-border-color: var(--spech-border);
    --bs-card-bg: var(--spech-surface);
    --bs-card-border-radius: 14px;
    --bs-card-border-color: var(--spech-border);
    --bs-border-radius-lg: 16px;
    --bs-border-radius: 12px;
    --bs-link-color: var(--spech-primary-2);
    --bs-link-hover-color: #70A2FF;
}

html,
body {

}

body {
    background:
            radial-gradient(circle at 12% 0%, rgba(45, 107, 255, .07) 0%, transparent 32%),
            linear-gradient(180deg, #0D1117 0%, var(--spech-bg) 42%, #090D13 100%);
    color: var(--spech-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

/* Spech Card Style */
.card,
.spech-card {
    background: var(--spech-surface);
    border: 1px solid var(--spech-border);
    border-radius: 14px !important;
    box-shadow: var(--spech-shadow-soft);
    color: var(--spech-text);
}

.card:hover,
.spech-card:hover {
    border-color: rgba(120, 140, 170, .32);
}

.card-header,
.card-footer {
    background: rgba(8, 12, 18, .28);
    border-color: var(--spech-border-soft);
}

.card-body {
    padding: 1.25rem;
}

/* Metric tiles: visual operacional do dashboard */
.metric-tile {
    height: auto !important;
    min-height: 0 !important;
    padding: 18px 22px;
    background: var(--spech-surface-2);
    border: 1px solid var(--spech-border);
    border-radius: 14px;
}

.metric-value {
    font-size: clamp(1.1rem, 5vw, 2.25rem);
    line-height: 1.15;
    font-weight: 800;
    color: var(--spech-text);
    letter-spacing: -.03em;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.metric-label {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--spech-text-soft);
    font-weight: 700;
}

.metric-card strong {
    display: block;
    font-size: 2rem;
    margin-top: .5rem;
    color: var(--spech-text);
    letter-spacing: -.03em;
}

.metric-card span {
    color: var(--spech-text-muted);
    font-size: .9rem;
}

.bg-primary-soft {
    background: var(--spech-primary-soft) !important;
    color: #70A2FF !important;
}

.bg-success-soft {
    background: var(--spech-success-soft) !important;
    color: var(--spech-success) !important;
}

.bg-info-soft {
    background: var(--spech-info-soft) !important;
    color: var(--spech-info) !important;
}

.bg-warning-soft {
    background: var(--spech-warning-soft) !important;
    color: var(--spech-warning) !important;
}

.bg-danger-soft {
    background: var(--spech-danger-soft) !important;
    color: var(--spech-danger) !important;
}

.bg-secondary-soft {
    background: rgba(167, 176, 192, .08) !important;
    color: var(--spech-text-muted) !important;
}

.icon-badge {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    flex-shrink: 0;
    background: rgba(255, 255, 255, .035);
    border: 1px solid var(--spech-border-soft);
}

/* Sidebar Styling */
.sidebar {
    width: 260px;
    background: var(--spech-sidebar);
    border-right: 1px solid var(--spech-border-soft);
    z-index: 1040;
}

.nav-link {
    color: var(--spech-text-muted);
    padding: .68rem 1rem;
    border-radius: 10px;
    margin-bottom: 3px;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
    border: 1px solid transparent;
    font-weight: 600;
}

.nav-link:hover {
    background: rgba(255, 255, 255, .045);
    border-color: var(--spech-border-soft);
    color: var(--spech-text);
}

.nav-link.active {
    background: rgba(255, 255, 255, .075);
    color: var(--spech-text);
    border-color: rgba(45, 107, 255, .26);
    position: relative;
}

.nav-link.active::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 14%;
    bottom: 14%;
    width: 3px;
    background: var(--spech-primary);
    border-radius: 0 4px 4px 0;
    box-shadow: 0 0 16px rgba(45, 107, 255, .42);
}

.nav-section {
    padding: 1.5rem 1rem .5rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .11em;
    color: var(--spech-text-soft);
    font-weight: 800;
}

/* Brand */
.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 1.45rem 1rem;
    color: var(--spech-text);
}

.brand-mark {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(135deg, #63B8FF 0%, var(--spech-primary) 100%);
    color: #fff;
    font-weight: 800;
    font-size: 1.2rem;
    box-shadow: 0 10px 24px rgba(45, 107, 255, .24);
}

/* Topbar */
.navbar {
    background: rgba(14, 19, 27, .92) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--spech-border-soft);
    height: 64px;
}

.navbar .navbar-text,
.navbar .nav-link {
    color: var(--spech-text-muted);
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--spech-text);
}

/* Status/badges */
.badge {
    font-weight: 800;
    padding: .4em .85em;
    letter-spacing: .02em;
    border-radius: 999px;
}

.bg-success {
    background-color: rgba(34, 197, 94, .9) !important;
}

.bg-danger {
    background-color: rgba(239, 68, 68, .9) !important;
}

.bg-warning {
    background-color: rgba(250, 204, 21, .9) !important;
    color: #111827 !important;
}

.bg-info {
    background-color: rgba(34, 211, 238, .9) !important;
    color: #06131A !important;
}

.text-muted,
.text-secondary {
    color: var(--spech-text-muted) !important;
}

.text-success {
    color: var(--spech-success) !important;
}

.text-info {
    color: var(--spech-info) !important;
}

.text-warning {
    color: var(--spech-warning) !important;
}

.text-danger {
    color: var(--spech-danger) !important;
}

/* Buttons */
.btn {
    border-radius: 12px;
    padding: .6rem 1.2rem;
    font-weight: 700;
    letter-spacing: -.01em;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: linear-gradient(135deg, var(--spech-primary) 0%, var(--spech-primary-2) 100%);
    border-color: rgba(45, 107, 255, .9);
    box-shadow: 0 10px 22px rgba(45, 107, 255, .20);
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
    border-color: #70A2FF;
    box-shadow: 0 12px 28px rgba(45, 107, 255, .28);
}

.btn-success {
    background: linear-gradient(135deg, var(--spech-success) 0%, #16A34A 100%);
    border-color: rgba(34, 197, 94, .85);
    box-shadow: 0 10px 22px rgba(34, 197, 94, .18);
}

.btn-success:hover,
.btn-success:focus {
    background: linear-gradient(135deg, #2AD56A 0%, #16A34A 100%);
    border-color: rgba(34, 197, 94, 1);
    box-shadow: 0 12px 28px rgba(34, 197, 94, .24);
}

/* ACOES em tabelas: Spech Control Center */
.sp-actions .btn {
    --bs-btn-padding-y: .25rem;
    --bs-btn-padding-x: .55rem;
    --bs-btn-font-size: .82rem;
    --bs-btn-border-radius: .75rem;
}

/* Outline light sem borda branca solida */
.btn-outline-light {
    --bs-btn-color: rgba(248, 250, 252, .92);
    --bs-btn-border-color: rgba(120, 140, 170, .24);
    --bs-btn-hover-color: rgba(248, 250, 252, 1);
    --bs-btn-hover-bg: rgba(255, 255, 255, .075);
    --bs-btn-hover-border-color: rgba(120, 140, 170, .38);
}

/* Outline info coerente com Spech */
.btn-outline-info {
    --bs-btn-color: rgba(34, 211, 238, .95);
    --bs-btn-border-color: rgba(34, 211, 238, .28);
    --bs-btn-hover-bg: rgba(34, 211, 238, .10);
    --bs-btn-hover-border-color: rgba(34, 211, 238, .42);
}

/* Outline warning discreto */
.btn-outline-warning {
    --bs-btn-color: rgba(250, 204, 21, .96);
    --bs-btn-border-color: rgba(250, 204, 21, .30);
    --bs-btn-hover-bg: rgba(250, 204, 21, .10);
    --bs-btn-hover-border-color: rgba(250, 204, 21, .44);
}

/* Outline danger sem tijolo */
.btn-outline-danger {
    --bs-btn-color: rgba(239, 68, 68, .95);
    --bs-btn-border-color: rgba(239, 68, 68, .30);
    --bs-btn-hover-bg: rgba(239, 68, 68, .12);
    --bs-btn-hover-border-color: rgba(239, 68, 68, .44);
}

.input-group > .btn {
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Forms */
.form-control,
.form-select {
    background: rgba(255, 255, 255, .035);
    border-color: var(--spech-border-soft);
    color: var(--spech-text);
    border-radius: 12px;
}

select option {
    background-color: #131633;
}

.form-control::placeholder {
    color: rgba(167, 176, 192, .68);
}

.form-control:focus,
.form-select:focus {
    background: rgba(255, 255, 255, .055);
    border-color: rgba(45, 107, 255, .55);
    box-shadow: 0 0 0 .25rem rgba(45, 107, 255, .15);
    color: var(--spech-text);
}

.input-group-text {
    background: rgba(255, 255, 255, .04);
    border-color: var(--spech-border-soft);
    color: var(--spech-text-muted);
}

/* Table overrides */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--spech-text);
    --bs-table-hover-bg: rgba(255, 255, 255, .035);
    --bs-table-border-color: var(--spech-border-soft);
    border-color: var(--spech-border-soft);
}

.table th {
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .07em;
    color: var(--spech-text-soft);
    border-top: none;
    font-weight: 800;
}

.table td {
    color: var(--spech-text);
    vertical-align: middle;
}

.table-responsive {
    border-radius: 12px;
    border: 1px solid var(--spech-border-soft);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(120, 140, 170, .22);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(120, 140, 170, .34);
}

/* Mobile adjustments */
@media (max-width: 991.98px) {
    .sidebar {
        display: none;
    }
}

/* Page responsiveness improvements */
.filters {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    align-items: center;
}

@media (max-width: 768px) {
    .filters {
        flex-direction: column;
        align-items: stretch;
    }

    .filters > * {
        max-width: 100% !important;
        width: 100% !important;
    }

    #page-content {
        /*padding: 1rem !important;*/
    }

    .card-body {
        padding: 1rem;
    }

    .h2,
    h2 {
        font-size: 1.5rem;
    }

    .h3,
    h3 {
        font-size: 1.25rem;
    }
}

/* Garante que o conteudo nao quebre o layout */
.min-width-0 {
    min-width: 0;
}

/* Modal responsividade */
.modal-content {
    background: var(--spech-surface);
    border: 1px solid var(--spech-border);
    border-radius: 16px !important;
    color: var(--spech-text);
    box-shadow: var(--spech-shadow);
}

.modal-header,
.modal-footer {
    border-color: var(--spech-border-soft);
}

@media (max-width: 576px) {
    .modal-dialog:not(.modal-fullscreen) {
        margin: .75rem auto;
        max-width: calc(100% - 1.5rem);
    }

    .modal-dialog:not(.modal-fullscreen) .modal-content {
        border-radius: 16px !important;
    }

    .modal-fullscreen .modal-content {
        border-radius: 0 !important;
    }

    .modal-body {
        padding: 1rem !important;
    }
}

/* Choices.js Overrides */
.choices__inner {
    background-color: rgba(255, 255, 255, .035) !important;
    border-radius: 10px !important;
    border: 1px solid var(--spech-border-soft) !important;
    color: var(--spech-text) !important;
    min-height: 42px !important;
    padding: 6px 12px !important;
    display: flex !important;
    align-items: center !important;
    font-size: .9rem !important;
}

.choices__list--single {
    padding: 0 !important;
    width: 100% !important;
}

.choices__list--dropdown,
.choices__list[aria-expanded] {
    background-color: var(--spech-surface-3) !important;
    border: 1px solid var(--spech-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, .45) !important;
    z-index: 2000 !important;
    margin-top: 5px !important;
}

.choices__item {
    padding: 8px 12px !important;
    font-size: .9rem !important;
    color: var(--spech-text) !important;
}

.choices {
    overflow: visible !important;
    margin-bottom: 0 !important;
}

.choices__item--selectable.is-highlighted {
    background-color: var(--spech-primary) !important;
}

.choices__input {
    background-color: var(--spech-bg) !important;
    color: var(--spech-text) !important;
    border-radius: 8px !important;
    border: 1px solid rgba(120, 140, 170, .25) !important;
    padding: 8px 12px !important;
    margin: 8px !important;
    display: block !important;
    width: calc(100% - 16px) !important;
    font-size: .9rem !important;
}

.choices__list--dropdown .choices__input {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    position: sticky !important;
    top: 0 !important;
    background-color: var(--spech-surface-3) !important;
    z-index: 1 !important;
}

.choices[data-type*="select-one"]::after {
    border-color: var(--spech-text-muted) transparent transparent transparent !important;
    right: 15px !important;
}

.choices[data-type*="select-one"].is-open::after {
    border-color: transparent transparent var(--spech-text-muted) transparent !important;
}

.choices__list--dropdown {
    padding-top: 0 !important;
}

/* Garante que o dropdown nao seja cortado pelo modal se for muito grande */

.choices__placeholder {
    opacity: .55 !important;
}

.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list--dropdown .choices__item--selectable.is-selected,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-selected {
    background-color: var(--spech-primary) !important;
}
/* Auth Layout */
.layout-auth .sidebar,
.layout-auth .navbar,
.layout-auth .offcanvas {
    display: none !important;
}

.login-page {
    flex: 1;
    display: flex !important;
    flex-direction: column;
    padding: 0 !important;
    min-height: 100vh;
    background:
            radial-gradient(circle at 32% 20%, rgba(45, 107, 255, .10) 0%, transparent 34%),
            radial-gradient(circle at 72% 90%, rgba(34, 197, 94, .06) 0%, transparent 30%),
            linear-gradient(135deg, #151607 0%, #0B0F14 46%, #080B10 100%);
}

.auth-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 2rem 1rem;
}

.auth-wrap .card,
.login-page .card {
    background: rgba(17, 23, 34, .92);
    border-color: rgba(120, 140, 170, .22);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .36);
}

.login-page h1,
.login-page h2,
.login-page h3,
.auth-wrap h1,
.auth-wrap h2,
.auth-wrap h3 {
    color: var(--spech-warning);
}

/* Ajustes finos para componentes comuns de dashboard */
.dropdown-menu {
    background: var(--spech-surface-3);
    border: 1px solid var(--spech-border);
    border-radius: 12px;
    box-shadow: var(--spech-shadow);
}

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

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active {
    background: rgba(45, 107, 255, .12);
    color: var(--spech-text);
}

.offcanvas {
    background: var(--spech-sidebar);
    color: var(--spech-text);
}

.alert {
    border-radius: 14px;
    border-color: var(--spech-border-soft);
}

.alert-success {
    background: var(--spech-success-soft);
    color: #A7F3D0;
}

.alert-info {
    background: var(--spech-info-soft);
    color: #A5F3FC;
}

.alert-warning {
    background: var(--spech-warning-soft);
    color: #FEF08A;
}

.alert-danger {
    background: var(--spech-danger-soft);
    color: #FECACA;
}

/* ═══════════════════════════════════════════════════════════════
   Billing page
   ═══════════════════════════════════════════════════════════════ */

/* Tab nav */
.billing-tab-nav {
    gap: .375rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.billing-tab-nav::-webkit-scrollbar {
    display: none;
}

.billing-tab-nav .nav-link {
    color: var(--spech-text-muted);
    background: var(--spech-surface-2);
    border: 1px solid var(--spech-border-soft);
    border-radius: 10px !important;
    padding: .45rem .95rem;
    font-size: .85rem;
    font-weight: 500;
    white-space: nowrap;
    transition: color .18s, background .18s, border-color .18s;
}

.billing-tab-nav .nav-link:hover {
    color: var(--spech-text);
    background: var(--spech-surface-3);
    border-color: var(--spech-border);
}

.billing-tab-nav .nav-link.active {
    color: #fff;
    background: var(--spech-primary);
    border-color: var(--spech-primary);
}

/* Section title */
.billing-section-title {
    font-size: .92rem;
    font-weight: 600;
    color: var(--spech-text);
    display: flex;
    align-items: baseline;
    gap: .25rem;
    flex-wrap: wrap;
}

/* Filters bar */
.billing-filters {
    background: var(--spech-surface);
    border: 1px solid var(--spech-border-soft);
    border-radius: 12px;
    padding: .75rem 1rem;
}

.billing-filters-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.billing-search-wrap {
    position: relative;
    flex: 1 1 80px;
    min-width: 0;
}

.billing-search-icon {
    position: absolute;
    left: .75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--spech-text-soft);
    font-size: .8rem;
    pointer-events: none;
}

.billing-search-input {
    padding-left: 2.1rem !important;
    background: rgba(255, 255, 255, .04) !important;
    border-color: var(--spech-border-soft) !important;
    border-radius: 10px !important;
    color: var(--spech-text) !important;
    font-size: .87rem;
}

.billing-search-input:focus {
    background: rgba(255, 255, 255, .07) !important;
    border-color: var(--spech-primary) !important;
    box-shadow: 0 0 0 3px rgba(45, 107, 255, .18) !important;
}

.billing-limit-select {
    flex: 0 0 auto;
    width: auto !important;
    background: rgba(255, 255, 255, .04) !important;
    border-color: var(--spech-border-soft) !important;
    border-radius: 10px !important;
    color: var(--spech-text) !important;
    font-size: .87rem;
}

.billing-search-btn {
    flex: 0 0 auto;
    border-radius: 10px !important;
    padding: .42rem .9rem;
    font-size: .85rem;
}

/* Entry type & money badges */
.billing-badge-credit {
    background: rgba(34, 197, 94, .18) !important;
    color: #4ade80 !important;
    font-size: .76rem;
    font-weight: 600;
}

.billing-badge-debit {
    background: rgba(239, 68, 68, .18) !important;
    color: #f87171 !important;
    font-size: .76rem;
    font-weight: 600;
}

.billing-badge-charge {
    background: rgba(250, 204, 21, .15) !important;
    color: #fde047 !important;
    font-size: .76rem;
    font-weight: 600;
}

.billing-badge-refund {
    background: rgba(34, 211, 238, .15) !important;
    color: #67e8f9 !important;
    font-size: .76rem;
    font-weight: 600;
}

.billing-badge-adjust {
    background: rgba(168, 85, 247, .18) !important;
    color: #c084fc !important;
    font-size: .76rem;
    font-weight: 600;
}

.billing-badge-other {
    background: rgba(120, 140, 170, .15) !important;
    color: var(--spech-text-muted) !important;
    font-size: .76rem;
    font-weight: 600;
}

/* Ledger table: hide less important columns on small screens */
@media (max-width: 767px) {
    /* ID column — 1st th/td */
    #ledger-table-container table th:nth-child(1),
    #ledger-table-container table td:nth-child(1),
    #summary-ledger-container table th:nth-child(1),
    #summary-ledger-container table td:nth-child(1) {
        display: none;
    }

    /* Saldo após column — 5th th/td */
    #ledger-table-container table th:nth-child(5),
    #ledger-table-container table td:nth-child(5),
    #summary-ledger-container table th:nth-child(5),
    #summary-ledger-container table td:nth-child(5) {
        display: none;
    }

    /* Descrição column — 6th th/td */
    #ledger-table-container table th:nth-child(6),
    #ledger-table-container table td:nth-child(6),
    #summary-ledger-container table th:nth-child(6),
    #summary-ledger-container table td:nth-child(6) {
        display: none;
    }

    /* Data column — 7th th/td */
    #ledger-table-container table th:nth-child(7),
    #ledger-table-container table td:nth-child(7),
    #summary-ledger-container table th:nth-child(7),
    #summary-ledger-container table td:nth-child(7) {
        display: none;
    }

    /* Wallet table: hide ID and Limite on mobile */
    #wallet-table-container table th:nth-child(3),
    #wallet-table-container table td:nth-child(3),
    #wallet-table-container table th:nth-child(4),
    #wallet-table-container table td:nth-child(4) {
        display: none;
    }
}

/* =====================================================================
   Trunks page
   ===================================================================== */

/* Metrics bar */
.trunk-metrics-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

@media (max-width: 991px) {
    .trunk-metrics-bar { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575px) {
    .trunk-metrics-bar { grid-template-columns: 1fr; }
}

.trunk-metric-card {
    background: linear-gradient(135deg, #1e2128 0%, #16191f 100%);
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 14px;
    padding: 1.1rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: transform .18s ease, box-shadow .18s ease;
}

.trunk-metric-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(0,0,0,.35);
}

.trunk-metric-card--warn {
    border-color: rgba(220, 53, 69, .3);
    background: linear-gradient(135deg, #261820 0%, #1a1215 100%);
}

.trunk-metric-icon {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}

.trunk-metric-icon--blue   { background: rgba(13,110,253,.18); color: #4d9eff; }
.trunk-metric-icon--green  { background: rgba(25,135, 84,.18); color: #3dd68c; }
.trunk-metric-icon--teal   { background: rgba(32,201,151,.18); color: #20c997; }
.trunk-metric-icon--purple { background: rgba(111, 66,193,.18); color: #a78bfa; }
.trunk-metric-icon--red    { background: rgba(220, 53, 69,.18); color: #f87171; }

.trunk-metric-value {
    font-size: 1.45rem;
    font-weight: 700;
    color: #f0f2f5;
    line-height: 1.1;
    white-space: nowrap;
}

.trunk-metric-label {
    font-size: .75rem;
    color: #6c757d;
    margin-top: .2rem;
}

/* Codec badges */
.trunk-codec-badge {
    display: inline-block;
    background: rgba(13,110,253,.15);
    color: #7eb8ff;
    border: 1px solid rgba(13,110,253,.25);
    border-radius: 6px;
    font-size: .68rem;
    font-weight: 600;
    padding: .15rem .45rem;
    line-height: 1.4;
    white-space: nowrap;
}

/* Money cells */
.trunk-money {
    font-variant-numeric: tabular-nums;
    font-size: .85rem;
    font-weight: 500;
    white-space: nowrap;
}

.trunk-money--positive { color: #3dd68c; }
.trunk-money--negative { color: #f87171; }
.trunk-money--zero     { color: #6c757d; }

.trunk-neg-warn {
    background: rgba(220,53,69,.18);
    color: #f87171;
    border-radius: 5px;
    font-size: .7rem;
    padding: .1rem .4rem;
    font-weight: 600;
}

/* Registration badges */
.trunk-reg-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .72rem;
    font-weight: 600;
    padding: .25rem .6rem;
    border-radius: 20px;
    white-space: nowrap;
    letter-spacing: .01em;
}

.trunk-reg-badge--ok      { background: rgba(25,135, 84,.18); color: #3dd68c; border: 1px solid rgba(25,135,84,.25); }
.trunk-reg-badge--loading { background: rgba(13,202,240,.15); color: #79d8f0; border: 1px solid rgba(13,202,240,.25); }
.trunk-reg-badge--error   { background: rgba(220, 53, 69,.15); color: #f87171; border: 1px solid rgba(220,53,69,.25); }
.trunk-reg-badge--warn    { background: rgba(255,193,  7,.12); color: #ffd047; border: 1px solid rgba(255,193,7,.25); }
.trunk-reg-badge--off     { background: rgba(108,117,125,.12); color: #6c757d; border: 1px solid rgba(108,117,125,.2); }

/* Server cell */
.trunk-server-cell {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.trunk-server-name {
    font-weight: 600;
    color: #dee2e6;
    font-size: .88rem;
}

.trunk-server-host {
    font-size: .75rem;
    color: #6c757d;
    font-family: monospace;
}

/* Provider */
.trunk-provider {
    font-size: .85rem;
    color: #adb5bd;
}

/* ─── Active Calls page ─────────────────────────────────────────────────── */

.dialogs-metric-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%);
  border: 1px solid rgba(255,255,255,0.05);
  border-radius: 14px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
  min-height: 100px;
  transition: all 0.2s ease;
}

.dialogs-metric-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  opacity: 0;
  transition: opacity 0.3s;
}

.dialogs-metric-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255,255,255,0.1);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.dialogs-metric-card:hover::before {
  opacity: 1;
}

.dialogs-metric-card .icon {
  position: absolute;
  right: 1.25rem;
  top: 1.25rem;
  font-size: 1.25rem;
  color: rgba(255,255,255,0.2);
  transition: all 0.3s ease;
}

.dialogs-metric-card:hover .icon {
  color: rgba(255,255,255,0.5);
  transform: scale(1.1);
}

.dialogs-metric-card .value {
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 600;
  line-height: 1;
  color: #fff;
  margin-bottom: 0.5rem;
}

.dialogs-metric-card .label {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.dialogs-metric-card.--live .icon { color: rgba(13, 110, 253, 0.4); }
.dialogs-metric-card.--live:hover { border-color: rgba(13, 110, 253, 0.3); box-shadow: 0 4px 20px rgba(13, 110, 253, 0.15); }
.dialogs-metric-card.--live .value { text-shadow: 0 0 10px rgba(13, 110, 253, 0.5); }

.dialogs-metric-card.--active .icon { color: rgba(25, 135, 84, 0.4); }
.dialogs-metric-card.--active:hover { border-color: rgba(25, 135, 84, 0.3); box-shadow: 0 4px 20px rgba(25, 135, 84, 0.15); }
.dialogs-metric-card.--active .value { text-shadow: 0 0 10px rgba(25, 135, 84, 0.5); }

.dialogs-metric-card.--ringing .icon { color: rgba(255, 193, 7, 0.4); }
.dialogs-metric-card.--ringing:hover { border-color: rgba(255, 193, 7, 0.3); box-shadow: 0 4px 20px rgba(255, 193, 7, 0.15); }
.dialogs-metric-card.--ringing .value { text-shadow: 0 0 10px rgba(255, 193, 7, 0.5); }

@keyframes dialogs-icon-pulse {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.5; }
  100% { transform: scale(1); opacity: 1; }
}

.dialogs-metric-icon-pulse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  animation: dialogs-icon-pulse 2s infinite ease-in-out;
}

@media (max-width: 576px) {
  .dialogs-metric-card {
    min-height: 80px;
    padding: 1rem;
  }
  .dialogs-metric-card .icon {
    font-size: 1rem;
    top: 1rem;
    right: 1rem;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Conexões SIP (Registros Ativos + Histórico de Eventos)
   ═══════════════════════════════════════════════════════════════ */

/* Campo de busca com ícone (alinhado ao padrão billing) */
.reg-search {
    position: relative;
    min-width: 0;
}

.reg-search-icon {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--spech-text-soft);
    font-size: .8rem;
    pointer-events: none;
}

.reg-search .form-control {
    padding-left: 2.2rem !important;
    border-radius: 10px;
}

.reg-filter-select {
    border-radius: 10px;
}

/* Pill "Tempo real" pulsante */
.reg-live-pill {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    color: var(--spech-success);
    background: var(--spech-success-soft);
    border: 1px solid rgba(34, 197, 94, .25);
    padding: .3rem .7rem;
    border-radius: 999px;
    white-space: nowrap;
}

.reg-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--spech-success);
    animation: reg-pulse 1.8s ease-in-out infinite;
}

@keyframes reg-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .35; transform: scale(.6); }
}

/* Lista de cards (visão mobile das tabelas) */
.reg-card-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem;
}

.reg-card {
    background: var(--spech-surface-2);
    border: 1px solid var(--spech-border-soft);
    border-radius: 14px;
    padding: .9rem 1rem;
    transition: border-color .18s ease;
}

.reg-card:hover {
    border-color: var(--spech-border);
}

.reg-card-top {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .7rem;
    padding-bottom: .6rem;
    border-bottom: 1px solid var(--spech-border-soft);
}

.reg-card-title {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 700;
    font-size: .95rem;
    word-break: break-all;
}

.reg-card-actions {
    display: flex;
    gap: .35rem;
    flex-shrink: 0;
}

.reg-card-body {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin: 0;
}

.reg-card-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.reg-card-row dt {
    margin: 0;
    flex-shrink: 0;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--spech-text-soft);
}

.reg-card-row dd {
    margin: 0;
    min-width: 0;
    text-align: right;
    font-size: .85rem;
    color: var(--spech-text);
    word-break: break-word;
}

/* Botões de ação um pouco mais "tocáveis" no mobile */
@media (max-width: 575.98px) {
    .reg-card-actions .btn {
        --bs-btn-padding-y: .35rem;
        --bs-btn-padding-x: .6rem;
    }
}

code[class*=language-], pre[class*=language-] {
    background: transparent !important;
}

/* ===== Termos de Uso (modal de cadastro) ===== */
.terms-content {
    color: var(--spech-text-muted);
    font-size: .92rem;
    line-height: 1.65;
}

.terms-content .terms-intro {
    color: var(--spech-text);
    font-size: .98rem;
    margin-bottom: 1.25rem;
}

.terms-section {
    padding: 1rem 1.1rem;
    margin-bottom: .85rem;
    background: var(--spech-surface-2);
    border: 1px solid var(--spech-border-soft);
    border-radius: 14px;
}

.terms-section:last-of-type {
    margin-bottom: 0;
}

.terms-section .terms-title {
    color: var(--spech-text);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .5rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid var(--spech-border-soft);
}

.terms-section p {
    margin: 0 0 .5rem;
}

.terms-section p:last-child {
    margin-bottom: 0;
}

.terms-section ul {
    margin: 0;
    padding-left: 1.15rem;
}

.terms-section li {
    margin-bottom: .35rem;
}

.terms-section li::marker {
    color: var(--spech-primary);
}

.terms-content .terms-footer {
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--spech-border-soft);
    color: var(--spech-text);
    font-weight: 600;
    text-align: center;
}
