/* Tweaks on top of SB Admin 2 so pages look like the old StarLine billing screens */
body { font-size: .9rem; }
.sidebar .sidebar-brand { height: auto; padding: 14px 0 10px; }
.brand-logo { max-height: 56px; max-width: 170px; }
.brand-star { width: 58px; height: 58px; background: #1b3a6b; border-radius: 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #f6c23e; }
.brand-star i { font-size: 28px; }
.brand-star span { font-size: 9px; color: #fff; text-transform: none; letter-spacing: 0; font-weight: 700; }
.sidebar.toggled .router-pick { display: none; }
.router-pick select { background: #fff; color: #333; border-radius: 4px; }
.sidebar .sidebar-heading { padding-top: .6rem; }
.topbar-note { font-style: italic; font-size: .8rem; color: #555; }
.crumbs { font-size: 1.05rem; color: #6e707e; }
.crumbs a { color: #4e73df; }
.card { border: none; box-shadow: 0 .125rem .5rem rgba(58, 59, 69, .08) !important; }
.table { color: #858796; font-size: .8rem; }
.table th { color: #6e707e; font-weight: 700; font-size: .85rem; border-bottom-width: 1px; }
.table td { vertical-align: top; }
.table-striped tbody tr:nth-of-type(odd) { background-color: rgba(0, 0, 0, .05); }
.table td a { color: #4e73df; }
.t-green { color: #1a9c20 !important; } .t-red { color: #e74a3b !important; }
.lbl { color: #858796; }
.warn-tri { color: #e74a3b; margin-left: 4px; }
.seg .btn { font-weight: 600; border-radius: 0; }
.seg .btn:first-child { border-radius: 4px 0 0 4px; } .seg .btn:last-child { border-radius: 0 4px 4px 0; }
.icon-btn { width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; color: #fff !important; }
.filters-bar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 18px; align-items: center; font-size: .7rem; margin-bottom: 12px; }
.filters-bar label { margin: 0 4px 0 0; color: #555; }
.filters-bar select, .filters-bar input { font-size: .72rem; height: 28px; padding: 2px 6px; border: 1px solid #d1d3e2; border-radius: 4px; background: #fff; width: auto; }
/* Pill inputs like the old "Add Customer" form */
.form-pill .form-control { border-radius: 10rem; text-align: center; font-size: .85rem; height: calc(1.5em + 1rem + 2px); }
.form-pill textarea.form-control { border-radius: 1rem; text-align: left; height: auto; }
.form-pill label { font-size: .75rem; margin-bottom: .2rem; color: #6e707e; }
.section-title { text-align: center; font-size: 1.15rem; color: #6e707e; padding: 14px 0; border-bottom: 1px solid #eaecf4; margin: -1.25rem -1.25rem 1.25rem; }
/* KPI cards with a coloured outline, like the old dashboard */
.kpi { border: 1px solid !important; border-radius: .35rem; }
.kpi .k { font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.kpi .v { font-size: 1.15rem; font-weight: 800; color: #3a3b45; }
.kpi .s { font-size: .68rem; color: #5a5c69; }
.kpi .ico { font-size: 1.8rem; color: #dddfeb; }
.kpi.b-success { border-color: #1cc88a !important; } .kpi.b-success .k { color: #1cc88a; }
.kpi.b-danger { border-color: #e74a3b !important; } .kpi.b-danger .k { color: #e74a3b; }
.kpi.b-primary { border-color: #4e73df !important; } .kpi.b-primary .k { color: #4e73df; }
.kpi.b-warning { border-color: #f6c23e !important; } .kpi.b-warning .k { color: #f6c23e; }
.kpi.b-info { border-color: #36b9cc !important; } .kpi.b-info .k { color: #36b9cc; }
.router-bar .item { display: flex; align-items: center; gap: 10px; font-size: .7rem; color: #5a5c69; }
.router-bar .item i { font-size: 1.6rem; color: #d1d3e2; }
.router-bar .item b { font-weight: 600; color: #858796; }
.chart-tabs a { font-size: .75rem; margin: 0 4px; }
.chart-tabs a.on { font-weight: 700; text-decoration: underline; }
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { font-size: .85rem; }
.mono { font-family: SFMono-Regular, Menlo, monospace; font-size: .75rem; }
pre { white-space: pre-wrap; }
@media print { .sidebar, .topbar, .no-print, .sticky-footer, .dataTables_length, .dataTables_filter, .dataTables_paginate { display: none !important; } }
/* The old system's sidebar is near-black, not the template's grey gradient */
.sidebar.bg-gradient-dark { background: #0a0a0a !important; background-image: none !important; }
.sidebar-dark .nav-item .nav-link { color: #fff; }
.sidebar-dark .nav-item .nav-link i { color: rgba(255, 255, 255, .6); }
.sidebar-dark .sidebar-heading { color: rgba(255, 255, 255, .55); }
body.bg-gradient-dark { background: #0a0a0a !important; background-image: none !important; }
/* Balance box when a bill has been generated and is unpaid */
.balance-billed { background: repeating-linear-gradient(-45deg, #e74a3b, #e74a3b 12px, #d63c2d 12px, #d63c2d 24px) !important; border-color: #c0392b !important; }
.balance-billed .k, .balance-billed .v, .balance-billed .s { color: #fff !important; }
/* MT Parameters card, like the old subscriber profile */
.mt-card .mt-row { color: #858796; font-size: .95rem; padding: 8px 0; border-bottom: 1px solid #d1d3e2 !important; margin-right: 40px; }
.mt-card .mt-row span { color: #4e73df; }
/* Subscriber profile: bold name, bigger account line, underlined detail rows */
.acct-line { font-size: 1.05rem; color: #5a5c69; }
.acct-line .badge { font-size: .75rem; vertical-align: middle; }
.detail-table td { border-top: 0 !important; border-bottom: 1px solid #d1d3e2 !important; padding: .55rem .3rem; font-size: .9rem; }
.detail-table td:not(.lbl) { color: #3a3b45; }
/* Dashboard KPIs (collection efficiency, aging, network) */
.eff-big { font-size: 2.6rem; font-weight: 800; line-height: 1; }
.aging-bar { display: flex; height: 22px; border-radius: 6px; overflow: hidden; background: #eaecf4; }
.aging-bar a { display: block; height: 100%; }
.aging-cell:hover .h6 { text-decoration: underline; }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; }
.move-table td { border-top: 0; border-bottom: 1px solid #e3e6f0; color: #3a3b45; font-size: .82rem; }
.net-list { max-height: 190px; overflow-y: auto; font-size: .78rem; }
.net-list a { color: #3a3b45; padding: 3px 0; border-bottom: 1px solid #eaecf4; }
/* Customer timeline */
.timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.timeline:before { content: ''; position: absolute; left: 15px; top: 0; bottom: 0; width: 2px; background: #e3e6f0; }
.tl-item { position: relative; padding: 0 0 14px 46px; }
.tl-icon { position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; color: #fff; display: flex; align-items: center; justify-content: center; font-size: .8rem; }
.tl-title { font-weight: 700; color: #3a3b45; font-size: .88rem; }
.tl-detail { color: #5a5c69; font-size: .82rem; white-space: pre-wrap; word-break: break-word; }
.tl-meta { color: #858796; font-size: .72rem; }
.tl-filter .btn { font-size: .72rem; }
