:root{--app-primary:#4f46e5;--app-primary-dark:#3730a3;--app-primary-soft:#eef2ff;--app-success:#059669;--app-danger:#dc2626;--app-warning:#d97706;--app-info:#0284c7;--app-bg:#f4f7fb;--app-surface:#fff;--app-border:#e5eaf1;--app-text:#172033;--app-muted:#6b7280;--app-radius:16px;--app-shadow:0 8px 30px rgba(15,23,42,.06)}
html{font-size:15px}body{background:var(--app-bg)!important;color:var(--app-text);font-family:Inter,"Segoe UI",sans-serif}.app-root{min-height:100vh}.content-wrapper{background:var(--app-bg)}.content-wrapper>.container-fluid{max-width:1680px;margin:0 auto}
.app-page-header{margin:0 0 22px;padding:18px 22px;border:1px solid var(--app-border);border-radius:var(--app-radius);background:rgba(255,255,255,.94);box-shadow:var(--app-shadow)}.app-page-header>div{gap:14px}.app-page-header h1,.app-page-header h2{color:var(--app-text);font-weight:750;letter-spacing:-.025em;font-size:clamp(1.15rem,.98rem + .55vw,1.45rem)!important;line-height:1.18}.app-page-header p{margin-top:4px}
.card{border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;box-shadow:var(--app-shadow)!important;background:var(--app-surface);overflow:hidden}.card-header{padding:17px 20px;border-bottom:1px solid var(--app-border);background:#fff;font-weight:700}.card-body{padding:20px}
.btn{min-height:40px;padding:.55rem .9rem;border-radius:10px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-sm{min-height:34px;padding:.38rem .65rem;border-radius:8px}.btn-primary{background:var(--app-primary);border-color:var(--app-primary);box-shadow:0 6px 14px rgba(79,70,229,.2)}.btn-primary:hover,.btn-primary:focus{background:var(--app-primary-dark);border-color:var(--app-primary-dark)}.btn-success{background:var(--app-success);border-color:var(--app-success)}.btn-danger{background:var(--app-danger);border-color:var(--app-danger)}.btn-group{flex-wrap:wrap;gap:5px}.btn-group>.btn{border-radius:8px!important}
.form-label,.form-group>label{margin-bottom:7px;color:#374151;font-weight:650}.form-control,.form-select,.select2-container .select2-selection--single,.select2-container .select2-selection--multiple{min-height:44px;border:1px solid #d8dee9;border-radius:10px;background:#fff;color:var(--app-text)}.form-control,.form-select{padding:.65rem .8rem}.form-control:focus,.form-select:focus{border-color:#818cf8;box-shadow:0 0 0 4px rgba(99,102,241,.12)}textarea.form-control{min-height:100px}.form-check-input{width:1.15rem;height:1.15rem}
.form-switch.app-toggle{display:flex;align-items:center;gap:.7rem;min-height:34px;padding-left:0}.form-switch.app-toggle .form-check-input{float:none;flex:0 0 auto;width:2.9rem;height:1.55rem;margin:0;cursor:pointer;border:1px solid #cbd5e1;background-color:#cbd5e1;box-shadow:inset 0 1px 2px rgba(15,23,42,.08);transition:background-color .2s,border-color .2s,box-shadow .2s}.form-switch.app-toggle .form-check-input:checked{border-color:var(--app-primary);background-color:var(--app-primary)}.form-switch.app-toggle .form-check-input:focus{border-color:#818cf8;box-shadow:0 0 0 4px rgba(99,102,241,.16)}.form-switch.app-toggle .form-check-input:disabled{cursor:not-allowed;opacity:.55}.form-switch.app-toggle .form-check-label{margin:0;cursor:pointer;color:#334155;font-weight:650;line-height:1.35}.form-switch.app-toggle:has(.form-check-input:disabled) .form-check-label{cursor:not-allowed;opacity:.65}
.table-responsive{border:1px solid var(--app-border);border-radius:12px;background:#fff}.table{margin-bottom:0;color:var(--app-text)}.table>:not(caption)>*>*{padding:.82rem .85rem;border-bottom-color:#edf0f5;vertical-align:middle}.table thead th{background:#f8fafc;color:#475569;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--app-border)}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:#f8faff}.badge{padding:.45rem .65rem;border-radius:999px;font-weight:700}
.dataTables_wrapper .row{row-gap:12px;align-items:center}.dataTables_wrapper .dataTables_length select{min-width:76px}.dataTables_wrapper .dataTables_filter input{min-height:40px;min-width:220px;border:1px solid #d8dee9;border-radius:10px;padding:.45rem .7rem}.dataTables_wrapper .dataTables_paginate .paginate_button{border-radius:8px!important}.dt-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:8px 0}
.modal-content{border:0;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.2);overflow:hidden}.modal-header{padding:18px 22px;border-bottom:1px solid var(--app-border);background:#fbfcfe}.modal-title{font-weight:750}.modal-body{padding:22px}.modal-footer{padding:16px 22px;border-top:1px solid var(--app-border)}.alert{border:0;border-radius:12px}
.navbar-header{height:72px;padding:13px 22px!important;border-bottom:1px solid var(--app-border);box-shadow:0 4px 18px rgba(15,23,42,.04)}.navbar-header>.row{height:100%;flex-wrap:nowrap}.navbar-header .sidebar-toggle,.navbar-header .sidebar-mobile-toggle,[data-theme-toggle]{border:1px solid var(--app-border);background:#fff;border-radius:10px}.sms-balance-card{margin:0!important;padding:6px 10px!important;border-radius:10px!important;box-shadow:none!important}
.sidebar-modern{background:#111827!important;border-right:0!important;box-shadow:8px 0 30px rgba(15,23,42,.08)}.sidebar-modern .brand{min-height:72px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-modern .brand img.logo-lg{max-width:42px;object-fit:contain}.sidebar-modern .brand span{color:#fff}.sidebar-modern .brand small{color:#94a3b8!important}.sidebar-modern .nav{padding:12px 8px!important}.sidebar-modern .nav .nav-link{min-height:44px;margin:3px 4px!important;padding:9px 11px!important;color:#cbd5e1!important;border-radius:10px!important}.sidebar-modern .nav .nav-link .icon{flex:0 0 30px;background:rgba(255,255,255,.07)!important;color:#c7d2fe}.sidebar-modern .nav .nav-link:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}.sidebar-modern .nav .nav-link.active{background:linear-gradient(135deg,#6366f1,#4f46e5)!important;color:#fff!important;box-shadow:0 8px 20px rgba(79,70,229,.3)!important}.sidebar-modern .sub-menu{padding:3px 0 5px 13px!important}.sidebar-modern .child-link{font-size:.88rem}.sidebar-toggle-btn{border:0!important;border-radius:12px!important;box-shadow:0 6px 20px rgba(15,23,42,.12);color:var(--app-primary)}.sidebar-modern.collapsed .brand>div,.sidebar-modern.collapsed .label,.sidebar-modern.collapsed .collapse-toggle{display:none!important}.sidebar-modern.collapsed .nav-link{justify-content:center}
.d-footer{color:var(--app-muted);font-size:.86rem;padding:18px 4px}.list-group-item{padding:15px 20px;border-color:#edf0f5}.stat-card{position:relative;min-height:138px;overflow:hidden}.stat-card:after{content:"";position:absolute;width:100px;height:100px;right:-30px;top:-30px;border-radius:50%;background:currentColor;opacity:.06}.stat-icon{width:46px;height:46px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem}.stat-value{font-size:1.75rem;font-weight:800;letter-spacing:-.04em}.stat-label{color:var(--app-muted);font-weight:650}.stat-primary .stat-icon{color:#4f46e5;background:#eef2ff}.stat-success .stat-icon{color:#059669;background:#ecfdf5}.stat-danger .stat-icon{color:#dc2626;background:#fef2f2}.stat-info .stat-icon{color:#0284c7;background:#f0f9ff}.stat-warning .stat-icon{color:#d97706;background:#fffbeb}
@media(max-width:991.98px){.navbar-header{padding:10px 14px!important;height:64px}.navbar-header>.row>.col-auto:nth-of-type(2){display:none}.sidebar-modern{width:min(290px,86vw)!important;z-index:1050!important}.sidebar-toggle-btn{left:14px!important;top:12px!important;z-index:1055!important}.app-page-header{margin-bottom:16px;padding:15px 16px}.app-page-header>div{flex-wrap:wrap;align-items:flex-start!important}.app-page-header .d-flex{flex-wrap:wrap}.card-body{padding:16px}}
@media(max-width:767.98px){html{font-size:14px}.app-page-header h2{font-size:1.06rem!important}.app-page-header .btn{flex:1 1 auto}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length{width:100%;margin-left:0;text-align:left}.dt-buttons{justify-content:stretch}.dt-buttons .btn{flex:1 1 auto}.table>:not(caption)>*>*{padding:.72rem}.modal-dialog{width:auto}.modal-body{padding:17px}.btn-group{display:flex;width:100%}.btn-group>.btn{flex:1 1 auto}.d-footer .row{gap:8px;justify-content:center!important;text-align:center}}

/* Page headers use titles only. Supporting text belongs inside page content. */
.app-page-header p{display:none!important}
.app-page-header{margin-bottom:1.25rem}
.app-page-header h1,.app-page-header h2,.app-page-header h3,.app-page-header h4{margin-bottom:0!important}

/* Global compact title system for the admin UI. */
.content-wrapper h1,.content-wrapper .h1{font-size:clamp(1.22rem,1.02rem + .62vw,1.55rem)!important;line-height:1.18}
.content-wrapper h2,.content-wrapper .h2{font-size:clamp(1.1rem,.96rem + .42vw,1.3rem)!important;line-height:1.2}
.content-wrapper h3,.content-wrapper .h3{font-size:clamp(1rem,.9rem + .3vw,1.13rem)!important;line-height:1.22}
.content-wrapper h4,.content-wrapper .h4{font-size:.98rem!important;line-height:1.24}
.content-wrapper h5,.content-wrapper .h5{font-size:.92rem!important;line-height:1.24}
.content-wrapper h6,.content-wrapper .h6{font-size:.84rem!important;line-height:1.22}
.content-wrapper .card-title{font-size:.98rem!important;line-height:1.28}
table h1,table h2,table h3,table h4,table h5,table h6{font-size:inherit!important;line-height:inherit!important}

/* Consistent smart modals: contained on desktop and comfortable on mobile. */
.modal{padding:0!important}
.modal-backdrop.show{opacity:.48;backdrop-filter:blur(3px)}
.modal-dialog{width:calc(100% - 2rem);max-width:620px;margin:1.75rem auto}
.modal-dialog.modal-sm{max-width:440px}
.modal-dialog.modal-lg{max-width:820px}
.modal-dialog.modal-xl{max-width:1040px}
.modal-dialog-centered{min-height:calc(100% - 3.5rem)}
.modal-content{display:flex;max-height:calc(100dvh - 3.5rem);border:1px solid rgba(148,163,184,.2);border-radius:20px!important;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.24);overflow:hidden}
.modal-content>form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;max-height:inherit;overflow:hidden}
.modal-content>form>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.modal-content>form>.modal-header,.modal-content>form>.modal-footer{flex:0 0 auto}
.modal-header{flex:0 0 auto;min-height:68px;padding:1rem 1.25rem;background:linear-gradient(135deg,#f8fafc,#fff);border-bottom:1px solid #e8edf3}
.modal-title{font-size:1.05rem;font-weight:750;color:#0f172a}
.modal-header .btn-close{margin:0 0 0 auto;padding:.65rem;border-radius:50%;background-color:#eef2f7;background-size:.7rem;opacity:.75}
.modal-header .btn-close:hover{background-color:#e2e8f0;opacity:1}
.modal-body{flex:1 1 auto;min-height:0;padding:1.25rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.modal-footer{flex:0 0 auto;padding:.9rem 1.25rem;background:#fafbfc;border-top:1px solid #e8edf3;gap:.5rem}
.modal-body .form-label{font-size:.84rem;font-weight:650;color:#334155}
.modal-body .form-control,.modal-body .form-select{min-height:44px;border-color:#dbe3ec;border-radius:10px}
.modal-body textarea.form-control{min-height:90px}
.modal-body .form-control:focus,.modal-body .form-select:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.modal-footer .btn{min-width:104px;border-radius:10px}
body.modal-open{padding-right:0!important}

@media(max-width:575.98px){
 .app-page-header{margin-bottom:1rem}
 .modal-dialog,.modal-dialog.modal-sm,.modal-dialog.modal-lg,.modal-dialog.modal-xl{width:calc(100% - 1rem);max-width:none;margin:.5rem auto}
 .modal-dialog-centered{min-height:calc(100% - 1rem)}
 .modal-content{max-height:calc(100dvh - 1rem);border-radius:16px!important}
 .modal-header{min-height:58px;padding:.8rem 1rem}
 .modal-body{padding:1rem}
 .modal-footer{padding:.75rem 1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .modal-footer .btn{width:100%;min-width:0;margin:0}
}
@media(max-width:575.98px){.sms-balance-card{display:none!important}.navbar-header .gap-3{gap:.5rem!important}.navbar-header .w-40-px,.navbar-header .h-40-px{width:36px!important;height:36px!important}.card-header,.card-body{padding-left:14px;padding-right:14px}.row.gy-4{--bs-gutter-y:1rem}.form-control,.form-select{font-size:16px}.swal2-popup{width:calc(100% - 20px)!important}}
@media print{.sidebar-modern,.sidebar-toggle-btn,.navbar-header,.d-footer,.no-print{display:none!important}.content-wrapper{margin:0!important;padding:0!important;background:#fff!important}.card{box-shadow:none!important;border:0!important}}
.dataTables_wrapper{max-width:100%;overflow-x:auto;padding-bottom:2px}.dataTables_wrapper>.row{min-width:0}.dropdown-menu{border:1px solid var(--app-border);border-radius:12px;box-shadow:0 16px 45px rgba(15,23,42,.14);padding:8px}.dropdown-item{border-radius:8px;padding:.6rem .75rem}
.auth-body{min-height:100vh;background:radial-gradient(circle at 15% 10%,#e0e7ff 0,transparent 32%),radial-gradient(circle at 90% 90%,#dbeafe 0,transparent 35%),#f8fafc}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-panel{width:min(100%,440px)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:18px;color:var(--app-text);font-size:1.2rem;font-weight:800;text-decoration:none}.auth-brand img{width:48px;height:48px;object-fit:contain}.auth-card{padding:28px;background:#fff;border:1px solid var(--app-border);border-radius:20px;box-shadow:0 25px 70px rgba(15,23,42,.1)}.auth-card label{display:block;margin-bottom:6px;font-weight:650;color:#374151}.auth-card input:not([type=checkbox]){display:block;width:100%;min-height:46px;padding:.65rem .8rem;border:1px solid #d8dee9;border-radius:10px;background:#fff}.auth-card input:focus{outline:0;border-color:#818cf8;box-shadow:0 0 0 4px rgba(99,102,241,.12)}.auth-card button{min-height:42px;border-radius:10px}.auth-card a{color:var(--app-primary)}.auth-card .mt-4{margin-top:1rem!important}.auth-card .text-red-600{color:var(--app-danger)}.auth-card .flex{display:flex}.auth-card .items-center{align-items:center}.auth-card .justify-end{justify-content:flex-end}.auth-card .ms-4{margin-left:1rem}.auth-card .w-full{width:100%}@media(max-width:575.98px){.auth-shell{padding:12px}.auth-card{padding:22px 18px;border-radius:16px}}
.navbar-header .sidebar-toggle,.navbar-header .sidebar-mobile-toggle{display:none!important}

/* Compact, readable title scale across the admin app. */
.content-wrapper h1,.content-wrapper .h1{font-size:clamp(1.45rem,1.1rem + 1vw,2rem);line-height:1.18}
.content-wrapper h2,.content-wrapper .h2{font-size:clamp(1.2rem,1rem + .7vw,1.55rem);line-height:1.22}
.content-wrapper h3,.content-wrapper .h3{font-size:clamp(1.05rem,.95rem + .45vw,1.28rem);line-height:1.24}
.content-wrapper h4,.content-wrapper .h4{font-size:clamp(1rem,.92rem + .28vw,1.15rem);line-height:1.25}
.content-wrapper h5,.content-wrapper .h5{font-size:.98rem;line-height:1.25}
.content-wrapper .card-title{font-size:1rem;line-height:1.3}

/* Premium, consistent visual system for every DataTable in the admin UI. */
:root{--dt-surface:#fff;--dt-surface-soft:#f7f9fc;--dt-line:#e6ebf1;--dt-line-strong:#d9e1ea;--dt-ink:#1b2a3d;--dt-muted:#718095;--dt-accent:#315f95;--dt-accent-soft:#edf3fa;--dt-row-hover:#f7faff;--dt-shadow:0 10px 30px rgba(25,43,66,.055)}
[data-theme=dark]{--dt-surface:#101c2b;--dt-surface-soft:#142235;--dt-line:#26374a;--dt-line-strong:#34485d;--dt-ink:#e7eef6;--dt-muted:#9cabbc;--dt-accent:#78a9df;--dt-accent-soft:#1a3048;--dt-row-hover:#17283b;--dt-shadow:0 12px 34px rgba(0,0,0,.2)}
.table-responsive:has(table.dataTable){border:1px solid var(--dt-line)!important;border-radius:16px!important;background:var(--dt-surface);box-shadow:var(--dt-shadow);overflow-x:auto;scrollbar-width:thin;scrollbar-color:#bdc8d5 transparent}
.card .table-responsive:has(table.dataTable){border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.card .dataTables_wrapper>.row:first-child,.card .dataTables_wrapper>.row:last-child{background:transparent}
.card .dataTables_wrapper>.row:first-child{border-bottom:1px solid var(--dt-line)}
.card .dataTables_wrapper>.row:last-child{border-top:1px solid var(--dt-line)}
.card .dataTables_wrapper table.dataTable{background:transparent}
.table-responsive:has(table.dataTable)::-webkit-scrollbar{height:7px}.table-responsive:has(table.dataTable)::-webkit-scrollbar-thumb{border-radius:10px;background:#bdc8d5}
div.dt-container,.dataTables_wrapper{width:100%;max-width:100%;padding:0!important;color:var(--dt-muted);font-size:.86rem;overflow:visible}
div.dt-container .dt-layout-row,.dataTables_wrapper>.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:0!important;padding:.85rem 1rem}
div.dt-container .dt-layout-row:first-child,.dataTables_wrapper>.row:first-child{position:relative;min-height:68px;border-bottom:1px solid var(--dt-line);background:var(--dt-surface)}
div.dt-container .dt-layout-row:last-child,.dataTables_wrapper>.row:last-child{min-height:62px;border-top:1px solid var(--dt-line);background:var(--dt-surface)}
div.dt-container .dt-layout-cell{padding:0!important}
div.dt-container .dt-layout-row:first-child>.dt-layout-start,
.dataTables_wrapper>.row:first-child>[class*="col-"]:first-child{display:flex;align-items:center;flex:0 0 auto}
div.dt-container .dt-layout-row:first-child>.dt-layout-end,
.dataTables_wrapper>.row:first-child>[class*="col-"]:last-child{display:flex;justify-content:flex-end;align-items:center;flex:1 1 auto;margin-left:auto}
div.dt-container .dt-layout-row:last-child>.dt-layout-start,
.dataTables_wrapper>.row:last-child>[class*="col-"]:first-child{display:flex;align-items:center;flex:0 1 auto}
div.dt-container .dt-layout-row:last-child>.dt-layout-end,
.dataTables_wrapper>.row:last-child>[class*="col-"]:last-child{display:flex;justify-content:flex-end;align-items:center;flex:1 1 auto;margin-left:auto}
div.dt-container .dt-length,div.dt-container .dt-search,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{display:flex;align-items:center;gap:.5rem;margin:0!important;color:var(--dt-muted);font-size:.72rem;font-weight:650}
div.dt-container .dt-layout-row:first-child .dt-layout-end{display:flex;justify-content:flex-end;margin-left:auto}
div.dt-container .dt-search,.dataTables_wrapper .dataTables_filter{position:relative;margin-left:auto!important;text-align:right}
div.dt-container .dt-search label,.dataTables_wrapper .dataTables_filter label{font-size:0}
div.dt-container .dt-search:before,.dataTables_wrapper .dataTables_filter:before{content:"";position:absolute;z-index:2;left:.75rem;bottom:50%;width:15px;height:15px;transform:translateY(50%);pointer-events:none;background:no-repeat center/15px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23718095' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E")}
div.dt-container .dt-input,.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{min-height:40px!important;margin:0!important;border:1px solid var(--dt-line-strong)!important;border-radius:10px!important;background-color:var(--dt-surface)!important;color:var(--dt-ink)!important;box-shadow:0 1px 2px rgba(25,43,66,.025)!important;outline:0;transition:border-color .18s,box-shadow .18s}
div.dt-container .dt-length select,.dataTables_wrapper .dataTables_length select{min-width:72px;padding:.4rem 1.9rem .4rem .65rem!important;font-weight:700}
div.dt-container .dt-search .dt-input,.dataTables_wrapper .dataTables_filter input{width:min(260px,58vw)!important;padding:.45rem .75rem .45rem 2.15rem!important}
div.dt-container .dt-search .dt-input,.dataTables_wrapper .dataTables_filter input{font-size:.78rem!important}
div.dt-container .dt-input:focus,.dataTables_wrapper .dataTables_filter input:focus,.dataTables_wrapper .dataTables_length select:focus{border-color:var(--dt-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--dt-accent) 14%,transparent)!important}
table.dataTable{width:100%!important;margin:0!important;border:0!important;border-collapse:separate!important;border-spacing:0!important;background:var(--dt-surface);color:var(--dt-ink)}
table.dataTable>thead>tr>th,table.dataTable>thead>tr>td{height:48px;padding:.72rem .9rem!important;border:0!important;border-bottom:1px solid var(--dt-line)!important;background:var(--dt-surface-soft)!important;color:var(--dt-muted)!important;font-size:.67rem!important;font-weight:800!important;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap}
table.dataTable>thead>tr>th:first-child,table.dataTable>tbody>tr>*:first-child{padding-left:1rem!important}
table.dataTable>thead>tr>th:last-child,table.dataTable>tbody>tr>*:last-child{padding-right:1rem!important}
table.dataTable>tbody>tr>td,table.dataTable>tbody>tr>th{height:57px;padding:.7rem .9rem!important;border:0!important;border-bottom:1px solid var(--dt-line)!important;background:var(--dt-surface);color:var(--dt-ink);font-size:.8rem;vertical-align:middle;transition:background .14s}
table.dataTable>tbody>tr:last-child>*{border-bottom:0!important}
table.dataTable>tbody>tr:hover>*{background:var(--dt-row-hover)!important}
table.dataTable>tbody>tr.selected>*{background:var(--dt-accent-soft)!important;color:var(--dt-ink)!important;box-shadow:none!important}
table.dataTable>tbody>tr:nth-child(even)>*{box-shadow:none!important}
table.dataTable td strong,table.dataTable td .fw-semibold,table.dataTable td .fw-bold{color:var(--dt-ink);font-weight:750!important}
table.dataTable td .text-muted{color:var(--dt-muted)!important;font-size:.7rem}
table.dataTable td code{padding:.25rem .42rem;border-radius:6px;color:var(--dt-accent);background:var(--dt-accent-soft);font-size:.72rem}
table.dataTable thead .dt-column-order{right:.45rem!important;opacity:.3;transform:scale(.82)}
table.dataTable thead .dt-ordering-asc .dt-column-order,table.dataTable thead .dt-ordering-desc .dt-column-order{opacity:1;color:var(--dt-accent)}
table.dataTable .form-check-input,table.dataTable input[type=checkbox]{width:17px;height:17px;margin:0;cursor:pointer;border:1px solid #bcc8d5;border-radius:5px;box-shadow:none}
table.dataTable .form-check-input:checked,table.dataTable input[type=checkbox]:checked{border-color:var(--dt-accent);background-color:var(--dt-accent)}
table.dataTable .badge{padding:.38rem .58rem;border-radius:999px;font-size:.63rem;font-weight:750;letter-spacing:.01em}
table.dataTable .btn{min-height:31px;padding:.32rem .55rem;border-radius:8px;font-size:.68rem;box-shadow:none}
table.dataTable .btn svg{width:14px;height:14px}
table.dataTable .btn-group{display:inline-flex;width:auto;flex-wrap:nowrap;gap:.3rem}
table.dataTable .dropdown-toggle:after{margin-left:.3rem}
table.dataTable td.dataTables_empty,table.dataTable td.dt-empty{height:180px!important;color:var(--dt-muted)!important;font-size:.78rem;text-align:center}
div.dt-container .dt-info,.dataTables_wrapper .dataTables_info{padding:0!important;color:var(--dt-muted);font-size:.71rem;font-weight:600}
div.dt-container .dt-paging,.dataTables_wrapper .dataTables_paginate{display:flex;align-items:center;gap:.2rem;margin-left:auto}
div.dt-container .dt-layout-row:last-child .dt-layout-start,
.dataTables_wrapper>.row:last-child .dataTables_info{justify-content:flex-start;text-align:left}
div.dt-container .dt-layout-row:last-child .dt-layout-end,
.dataTables_wrapper>.row:last-child .dataTables_paginate{justify-content:flex-end;text-align:right}
div.dt-container .dt-paging .dt-paging-button,.dataTables_wrapper .dataTables_paginate .paginate_button{display:inline-flex!important;align-items:center;justify-content:center;min-width:34px;min-height:34px;margin:0!important;padding:.3rem .5rem!important;border:1px solid transparent!important;border-radius:9px!important;background:transparent!important;color:var(--dt-muted)!important;font-size:.72rem;font-weight:700;box-shadow:none!important;transition:.16s}
div.dt-container .dt-paging .dt-paging-button:hover,.dataTables_wrapper .dataTables_paginate .paginate_button:hover{border-color:var(--dt-line)!important;background:var(--dt-surface-soft)!important;color:var(--dt-accent)!important}
div.dt-container .dt-paging .dt-paging-button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current{border-color:var(--dt-accent)!important;background:var(--dt-accent)!important;color:#fff!important;box-shadow:0 5px 12px color-mix(in srgb,var(--dt-accent) 22%,transparent)!important}
div.dt-container .dt-paging .dt-paging-button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled{opacity:.4!important;cursor:default!important}
div.dt-container .dt-processing,.dataTables_wrapper .dataTables_processing{min-width:170px;padding:.8rem 1rem!important;border:1px solid var(--dt-line)!important;border-radius:12px!important;background:color-mix(in srgb,var(--dt-surface) 96%,transparent)!important;box-shadow:0 16px 42px rgba(15,23,42,.14)!important;color:var(--dt-accent)!important;font-size:.75rem;font-weight:750;backdrop-filter:blur(8px)}
.dt-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;margin:.5rem 0}.dt-buttons .btn{min-height:36px;border-color:var(--dt-line-strong);background:var(--dt-surface);color:var(--dt-ink);box-shadow:none}
.dt-buttons:empty{display:none!important}
.dataTables_wrapper>.row:has(.dt-buttons:empty){display:none!important}
.dataTables_wrapper .dt-buttons{margin:0}
.dataTables_wrapper .dt-buttons .btn{min-height:38px;padding:.45rem .7rem;border-radius:10px;font-size:.74rem}
.dataTables_wrapper .dt-buttons .btn span{white-space:nowrap}
@media(max-width:767.98px){.table-responsive:has(table.dataTable){border-radius:13px!important}div.dt-container .dt-layout-row,.dataTables_wrapper>.row{padding:.7rem}.dt-layout-cell,.dataTables_wrapper>.row>[class*=col-]{width:100%!important}div.dt-container .dt-layout-row:first-child .dt-layout-end,div.dt-container .dt-layout-row:last-child .dt-layout-end{width:100%;margin-left:0}div.dt-container .dt-length,div.dt-container .dt-search,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{width:100%;margin-left:0!important;justify-content:space-between;text-align:left}div.dt-container .dt-search .dt-input,.dataTables_wrapper .dataTables_filter input{width:min(100%,280px)!important}div.dt-container .dt-paging,.dataTables_wrapper .dataTables_paginate{margin:0 auto;flex-wrap:wrap;justify-content:center!important}div.dt-container .dt-info,.dataTables_wrapper .dataTables_info{width:100%;text-align:center;justify-content:center!important}.dataTables_wrapper>.row:last-child>[class*=col-]:last-child,.dataTables_wrapper>.row:last-child>[class*=col-]:first-child{display:flex;justify-content:center!important}table.dataTable>thead>tr>th,table.dataTable>tbody>tr>td{padding:.65rem .7rem!important}table.dataTable>thead>tr>th:first-child,table.dataTable>tbody>tr>*:first-child{padding-left:.8rem!important}table.dataTable>thead>tr>th:last-child,table.dataTable>tbody>tr>*:last-child{padding-right:.8rem!important}}
.mikrotik-sync-status{display:flex;flex-wrap:wrap;gap:8px}.router-sync-pill{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid}.router-sync-pill:before{content:"";width:7px;height:7px;border-radius:50%;margin-right:7px;background:currentColor}.router-sync-pill.is-online{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.router-sync-pill.is-stale{color:#b45309;background:#fffbeb;border-color:#fde68a}.router-sync-pill.is-offline{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.main-wrapper{width:100%;min-width:0}.content-wrapper{width:calc(100vw - var(--sidebar-width));max-width:calc(100vw - var(--sidebar-width));min-width:0;overflow-x:hidden}body.sidebar-collapsed .content-wrapper{width:calc(100vw - var(--sidebar-collapsed-width));max-width:calc(100vw - var(--sidebar-collapsed-width))}.content-wrapper>.container-fluid{width:100%;min-width:0}.content-wrapper .row>*{min-width:0}
@media(max-width:991.98px){.content-wrapper,body.sidebar-collapsed .content-wrapper{width:100vw;max-width:100vw}.content-wrapper>.container-fluid{padding-left:0;padding-right:0}}

/* Smart sidebar icon system: consistent sizing, semantic color rhythm and clear states. */
.sidebar-modern .nav .nav-link{min-height:46px!important;padding:8px 10px!important;border:1px solid transparent;border-radius:12px!important;transition:background .18s,color .18s,transform .18s!important}
.sidebar-modern .nav .nav-link .icon{position:relative;flex:0 0 34px!important;width:34px!important;height:34px!important;border:1px solid rgba(255,255,255,.08);border-radius:10px!important;background:rgba(255,255,255,.06)!important;color:var(--menu-icon,#a5b4fc)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:.18s}
.sidebar-modern .nav .nav-link .icon svg{width:18px;height:18px;stroke-width:2}
.sidebar-modern .menu-tone-0{--menu-icon:#93c5fd}.sidebar-modern .menu-tone-1{--menu-icon:#86efac}.sidebar-modern .menu-tone-2{--menu-icon:#fcd34d}.sidebar-modern .menu-tone-3{--menu-icon:#c4b5fd}.sidebar-modern .menu-tone-4{--menu-icon:#67e8f9}.sidebar-modern .menu-tone-5{--menu-icon:#fda4af}
.sidebar-modern .nav .nav-link:hover{transform:translateX(2px)}.sidebar-modern .nav .nav-link:hover .icon{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.11)!important}
.sidebar-modern .nav .nav-link.active .icon{color:#fff!important;background:rgba(255,255,255,.17)!important;border-color:rgba(255,255,255,.2)}
.sidebar-modern .sub-menu{position:relative;padding:4px 0 6px 15px!important}.sidebar-modern .sub-menu:before{content:"";position:absolute;left:15px;top:3px;bottom:8px;width:1px;background:rgba(148,163,184,.18)}
.sidebar-modern .child-link{font-size:.86rem!important}.sidebar-modern .child-link .icon{flex-basis:28px!important;width:28px!important;height:28px!important;border-radius:8px!important}.sidebar-modern .child-link .icon svg{width:15px;height:15px}
.sidebar-modern .collapse-toggle svg{width:16px;height:16px;transition:transform .2s}.sidebar-modern [aria-expanded=true] .collapse-toggle svg{transform:rotate(180deg)}.sidebar-modern.collapsed .nav .nav-link:hover{transform:none}

/* Compact application toasts; confirmation dialogs keep their normal modal size. */
.swal2-container.swal2-top-end{padding:14px!important}.swal2-popup.swal2-toast.app-toast{width:min(360px,calc(100vw - 28px))!important;min-height:58px!important;padding:.65rem .75rem!important;border:1px solid #e5eaf1!important;border-radius:14px!important;background:#fff!important;box-shadow:0 14px 38px rgba(15,23,42,.16)!important;grid-template-columns:32px minmax(0,1fr) 24px!important;column-gap:.6rem!important}.swal2-toast.app-toast .swal2-icon{width:28px!important;height:28px!important;min-width:28px!important;margin:0!important;font-size:.85rem!important}.swal2-toast.app-toast .swal2-icon .swal2-icon-content{font-size:1rem!important}.swal2-toast.app-toast .swal2-title{margin:0!important;padding:0!important;color:#1e293b!important;font-size:.86rem!important;font-weight:650!important;line-height:1.35!important;text-align:left!important}.swal2-toast.app-toast .swal2-close{position:static!important;width:24px!important;height:24px!important;margin:0!important;color:#94a3b8!important;font-size:1.35rem!important;line-height:1!important}.swal2-toast.app-toast .swal2-timer-progress-bar-container{height:3px!important}.swal2-toast.app-toast .swal2-timer-progress-bar{background:var(--app-primary)!important}.swal2-toast.app-toast.swal2-icon-success .swal2-timer-progress-bar{background:var(--app-success)!important}.swal2-toast.app-toast.swal2-icon-error .swal2-timer-progress-bar{background:var(--app-danger)!important}
@media(max-width:575.98px){.swal2-container.swal2-top-end{padding:8px!important}.swal2-popup.swal2-toast.app-toast{width:calc(100vw - 16px)!important;min-height:54px!important;padding:.6rem .65rem!important}}
