/* SeelVPN administration. Existing Bootstrap and Livewire contracts are preserved. */
:root {
    --surface: #fff;
    --surface-muted: #f5f8f8;
    --canvas: #f1f5f6;
    --ink-secondary: #3e5860;
    --ink: #172c34;
    --muted: #586d75;
    --accent: #07766c;
    --line: #dfe8e7;
    --sidebar: 248px;
}
body.admin-ui {
    background: var(--canvas) !important;
    background-image: none !important;
    color: var(--ink);
    font:
        14px/1.55 Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    letter-spacing: 0;
}
.admin-ui a {
    color: var(--accent);
    text-decoration: none;
}
.admin-ui h1,
.admin-ui h2,
.admin-ui h3,
.admin-ui h4,
.admin-ui h5,
.admin-ui h6 {
    color: var(--ink);
    font-weight: 650;
    letter-spacing: -0.025em;
}
.admin-ui :focus-visible {
    outline: 3px solid #34b3a5 !important;
    outline-offset: 3px;
}
.admin-ui [hidden] {
    display: none !important;
}
.admin-ui .text-muted,
.admin-ui .text-secondary,
.admin-ui .text-white-50 {
    color: var(--muted) !important;
}
.admin-ui .text-white:not(.btn):not(.badge) {
    color: var(--ink) !important;
}
.admin-ui .text-primary,
.admin-ui .text-info {
    color: var(--accent) !important;
}
.admin-ui .text-danger {
    color: #ba3b49 !important;
}
.admin-ui .text-success {
    color: #08765a !important;
}
.admin-ui .text-warning {
    color: #966313 !important;
}
.admin-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--sidebar);
    z-index: 1035;
    background: var(--surface);
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    padding: 26px 16px 16px;
}
.admin-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 12px 27px;
    color: var(--ink) !important;
    font-size: 23px;
    line-height: 1.2;
    font-weight: 750;
    letter-spacing: -0.8px;
}
.admin-brand-mark {
    width: 40px;
    height: 44px;
    background: var(--accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 28px;
    flex-shrink: 0;
}
.admin-brand small {
    display: block;
    font-size: 9px;
    letter-spacing: 1.8px;
    color: var(--muted);
    margin-top: 6px;
    font-weight: 650;
}
.admin-nav {
    overflow-y: auto;
    flex: 1;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}
.admin-nav-group {
    margin-bottom: 16px;
}
.admin-nav-group > p {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin: 0 12px 7px;
    color: #778b90;
}
.admin-nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    margin: 2px 0;
    border-radius: 8px;
    color: var(--ink-secondary) !important;
    font-size: 13px;
    font-weight: 550;
}
.admin-nav-link .bx {
    font-size: 20px;
    width: 1em;
    flex: none;
}
/* A bold active label that wraps must not make its link taller and push the rest of the list down. */
.admin-nav-link > span {
    line-height: 1.15;
}
.admin-nav-link:hover {
    background: #f2f6f5;
}
.admin-nav-link.is-active {
    background: #e5f3ef;
    color: #066b61 !important;
    font-weight: 700;
}
.admin-nav-link.is-active:after {
    content: "";
    width: 5px;
    height: 5px;
    background: var(--accent);
    border-radius: 50%;
    margin-left: auto;
}
.admin-sidebar-bottom {
    border-top: 1px solid var(--line);
    padding: 17px 10px 0;
    display: flex;
    gap: 10px;
    font-size: 11px;
    font-weight: 650;
    align-items: center;
}
.admin-sidebar-bottom small {
    display: block;
    color: var(--muted);
    font-weight: 400;
    font-size: 10px;
}
.admin-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #199a70;
    box-shadow: 0 0 0 4px #e6f4ee;
    flex-shrink: 0;
}
.admin-topbar {
    height: 76px;
    position: fixed;
    inset: 0 0 auto var(--sidebar);
    border-bottom: 1px solid var(--line);
    background: var(--surface);
    z-index: 1030;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 36px;
}
.admin-search-trigger {
    background: none;
    border: 0;
    color: #829095;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 13px;
}
.admin-search-trigger .bx {
    font-size: 20px;
}
.admin-search-trigger kbd {
    border: 1px solid #e0e7e7;
    background: #f6f8f8;
    color: #7a898f;
    font-size: 10px;
    border-radius: 4px;
    margin-left: 30px;
    padding: 3px 5px;
}
.admin-topbar-right {
    display: flex;
    align-items: center;
    gap: 26px;
}
.admin-help-link {
    font-size: 12px;
    color: var(--muted) !important;
    display: flex;
    align-items: center;
    gap: 7px;
}
.admin-account {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: none;
    font-size: 12px;
    font-weight: 650;
    text-align: left;
    color: var(--ink);
}
.admin-account small {
    font-size: 10px;
    display: block;
    color: var(--muted);
    font-weight: 400;
}
.admin-avatar {
    display: inline-flex;
    width: 35px;
    height: 35px;
    background: #e5efed;
    color: #176c60;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
.admin-main {
    margin-left: var(--sidebar);
    padding-top: 76px;
    min-height: 100vh;
}
.admin-main > .page-content {
    max-width: 1560px;
    margin: auto;
    padding: 32px 36px 40px;
}
.admin-footer {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-top: 1px solid var(--line);
    padding: 18px 36px;
    font-size: 11px;
    color: var(--muted);
}
.admin-page-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin: 0 0 26px;
}
.admin-eyebrow {
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: 1.8px;
    font-size: 10px;
    font-weight: 750;
    color: var(--accent);
}
.admin-page-heading h1 {
    font-size: 30px;
    letter-spacing: -1px;
    margin: 0 0 8px;
    line-height: 1.2;
}
.admin-page-description {
    color: var(--muted);
    font-size: 13px;
    margin: 0;
    max-width: 760px;
}
.admin-heading-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.admin-ui .card {
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 3px 5px #20383d04;
    background: var(--surface);
    color: var(--ink);
    margin-bottom: 24px;
}
.admin-ui .card-header {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    padding: 20px 24px;
    border-radius: 14px 14px 0 0;
    gap: 12px;
    flex-wrap: wrap;
}
.admin-ui .card-header h3,
.admin-ui .card-header h5,
.admin-ui .card-title {
    font-size: 15px;
    font-weight: 650;
}
.admin-ui .card-body {
    padding: 24px;
}
.admin-ui .card-footer {
    background: var(--surface-muted);
    border-color: var(--line);
}
.admin-ui .btn {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    border-radius: 8px !important;
    padding: 9px 15px;
    box-shadow: none;
    min-height: 36px;
    white-space: normal;
    letter-spacing: 0;
}
.admin-ui .btn:disabled {
    opacity: 0.5;
    cursor: wait;
}
.admin-ui .btn-primary,
.admin-ui .btn-success,
.admin-ui .btn-outline-success {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff !important;
}
.admin-ui .btn-primary:hover,
.admin-ui .btn-success:hover,
.admin-ui .btn-outline-success:hover {
    background: #05665e;
    border-color: #05665e;
}
.admin-ui .btn-light,
.admin-ui .btn-outline-primary,
.admin-ui .btn-outline-info,
.admin-ui .btn-outline-secondary {
    color: var(--ink-secondary);
    background: var(--surface);
    border: 1px solid var(--line);
}
.admin-ui .btn-light:hover,
.admin-ui .btn-outline-info:hover {
    background: #eff7f4;
    border-color: #85b8ad;
}
.admin-ui .btn-danger,
.admin-ui .btn-outline-danger {
    background: #fff5f5;
    border: 1px solid #efd4d7;
    color: #b23746;
}
.admin-ui .btn-danger:hover,
.admin-ui .btn-outline-danger:hover {
    background: #be4050;
    color: #fff;
}
.admin-ui .btn-outline-warning {
    background: #fffaf0;
    color: #966313;
    border-color: #ecdcbc;
}
.admin-ui .btn-sm {
    font-size: 11px;
    padding: 6px 10px;
}
.admin-ui .form-control,
.admin-ui .form-select {
    border: 1px solid var(--line);
    border-radius: 7px;
    background-color: var(--surface);
    color: var(--ink);
    font-size: 13px;
    padding: 9px 12px;
    min-height: 39px;
}
.admin-ui .form-control:focus,
.admin-ui .form-select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px #087f7412;
}
.admin-ui .form-control::placeholder {
    color: var(--muted);
}
.admin-ui .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23586d75' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.admin-ui .modal .form-select,
.admin-editor-form .form-select {
    width: 100%;
}
[data-theme="dark"] .admin-ui .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c3d2db' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.admin-ui .form-label,
.admin-ui label {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-secondary);
}
.admin-ui .form-check-input {
    border-color: #b6c7c4;
}
.admin-ui .form-check-input:checked {
    background-color: var(--accent);
    border-color: var(--accent);
}
.admin-ui .input-group-text {
    background: #f5f8f7;
    border: 1px solid var(--line);
    color: #6a8285;
}
.admin-ui textarea.form-control {
    min-height: 100px;
}
.admin-ui select[aria-label="Rows per page"] {
    width: 82px;
}
.admin-ui input[type="search"] {
    min-width: 220px;
}
.admin-ui .form-text {
    font-size: 11px;
    color: var(--muted);
}
.admin-ui .table {
    border-color: var(--line);
    vertical-align: middle;
    --bs-table-bg: transparent;
    --bs-table-color: var(--ink);
    --bs-table-border-color: var(--line);
    margin-bottom: 0;
}
.admin-ui .table th {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.75px;
    color: var(--muted);
    background: var(--surface-muted);
    padding: 12px 14px;
    white-space: nowrap;
}
.admin-ui .table td {
    font-size: 12px;
    padding: 17px 14px;
    background: transparent;
    border-bottom: 1px solid var(--line);
    color: var(--ink-secondary);
}
.admin-ui .table tbody tr:hover {
    background: var(--surface-muted);
}
.admin-ui .table td .btn {
    padding: 6px 9px;
    min-height: 32px;
}
.admin-table-scroll,
.admin-ui .table-box {
    overflow-x: auto;
    position: relative;
    max-width: 100%;
    scrollbar-width: thin;
}
.admin-ui .table-box .admin-table-scroll {
    overflow: visible;
}
.admin-table-scroll table {
    min-width: 650px;
}
.admin-ui .badge {
    border-radius: 5px;
    padding: 5px 8px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1px;
    color: #385d67;
    background: #eaf0f3;
}
.admin-ui .badge.bg-success,
.admin-ui .badge-light-success,
.admin-ui .bg-light-success {
    background: #e4f4ec !important;
    color: #147455 !important;
}
.admin-ui .badge.bg-danger,
.admin-ui .badge-light-danger,
.admin-ui .bg-light-danger {
    background: #fbecee !important;
    color: #b83c4d !important;
}
.admin-ui .badge.bg-warning,
.admin-ui .badge-light-warning {
    background: #fff2d9 !important;
    color: #946012 !important;
}
.admin-ui .badge.bg-primary,
.admin-ui .badge.bg-info,
.admin-ui .badge-light-info {
    background: #e6f3f1 !important;
    color: #087367 !important;
}
.admin-ui .badge.bg-secondary {
    background: #edf1f2 !important;
    color: var(--muted) !important;
}
.admin-ui .dropdown-menu {
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: 0 12px 36px #173c421a;
    border-radius: 10px;
    padding: 8px;
    min-width: 200px;
    color: var(--ink);
}
.admin-ui .dropdown-menu:has(.form-select) {
    min-width: 300px;
}
.admin-ui .dropdown-item {
    font-size: 12px;
    color: var(--ink);
    padding: 9px 10px;
    border-radius: 5px;
    white-space: normal;
}
.admin-ui .dropdown-item:hover,
.admin-ui .dropdown-item:focus,
.admin-ui .dropdown-item:active,
.admin-ui .dropdown-item.active {
    /* !important: custom.css forces white text on a transparent background. */
    background-color: #edf7f3 !important;
    color: var(--accent) !important;
}
.admin-ui .dropdown-divider {
    border-top: 1px solid var(--line);
    opacity: 1;
}
.admin-ui .dropdown-item .transparent-btn {
    color: inherit !important;
}
.admin-ui .modal-content {
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 24px 70px #163b4033;
}
.admin-ui .modal-header {
    border-bottom: 1px solid var(--line);
    padding: 22px 24px;
}
.admin-ui .modal-body {
    padding: 24px;
}
.admin-ui .modal-footer {
    padding: 16px 24px;
    background: var(--surface-muted);
    border-top: 1px solid var(--line);
    border-radius: 0 0 16px 16px;
}
.admin-ui .modal-dialog {
    width: calc(100% - 24px);
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
    margin-bottom: 30px;
}
.admin-ui .modal form.row {
    margin: 0;
}
.admin-ui .btn-close {
    filter: none !important;
    opacity: 0.65;
}
/* sweetalert2 injects its :root --swal2-* defaults after this file, so the theme is set on body.
   custom-sweetalert.css paints every popup white with !important and colours body text rust. */
body.admin-ui {
    --swal2-background: var(--surface);
    --swal2-color: var(--ink);
    --swal2-input-background: var(--surface);
    --swal2-footer-border-color: var(--line);
    --swal2-validation-message-background: var(--surface-muted);
    --swal2-validation-message-color: var(--ink-secondary);
}
.admin-ui .swal2-popup {
    background: var(--surface) !important;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.admin-ui .swal2-title {
    color: var(--ink);
}
.admin-ui .swal2-html-container,
.admin-ui .swal2-toast .swal2-html-container {
    color: var(--ink-secondary);
}
.admin-ui .swal2-input,
.admin-ui .swal2-textarea,
.admin-ui .swal2-select {
    color: var(--ink);
    border-color: var(--line);
}
.admin-ui .swal2-input::placeholder,
.admin-ui .swal2-textarea::placeholder {
    color: var(--muted);
}
.admin-ui .swal2-validation-message {
    background: var(--surface-muted);
    color: var(--ink-secondary);
}
.admin-ui .swal2-styled.swal2-confirm {
    /* background-color only, so sweetalert's hover and press shading still applies. */
    background-color: var(--accent) !important;
    color: #fff !important;
}
/* Views pass fixed cancel colours (often red); a way out should look neutral in both themes. */
.admin-ui .swal2-styled.swal2-cancel,
.admin-ui .swal2-styled.swal2-deny {
    background-color: var(--surface-muted) !important;
    color: var(--ink-secondary) !important;
    border: 1px solid var(--line) !important;
}
.admin-ui .swal2-icon.swal2-warning {
    border-color: #ecdcbc;
    color: #966313;
}
.admin-ui .swal2-icon.swal2-info,
.admin-ui .swal2-icon.swal2-question {
    border-color: #c9e7e5;
    color: var(--accent);
}
.admin-ui .swal2-icon.swal2-error {
    border-color: #f1cbd1;
}
.admin-ui .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
    background-color: #ba3b49;
}
.admin-ui .swal2-icon.swal2-success .swal2-success-ring {
    border-color: #bddacb;
}
.admin-ui .swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: #08765a;
}
.admin-ui .alert {
    border-radius: 10px;
    font-size: 13px;
}
.admin-ui .alert-danger {
    background: #fff0f1;
    color: #a92e3d;
    border-color: #f1cbd1;
}
.admin-ui .alert-info {
    background: #eaf5f5;
    color: #246c72;
    border-color: #c9e7e5;
}
.admin-ui .alert-success {
    background: #e8f5ee;
    color: #235b43;
    border-color: #bddacb;
}
.admin-form-column {
    max-width: 920px;
}
.admin-editor-form .form-label {
    display: block;
    margin-bottom: 8px;
}
.admin-editor-form textarea {
    min-height: 120px;
    resize: vertical;
}
.admin-form-section {
    border-top: 1px solid var(--line);
    margin-top: 8px;
    padding-top: 20px;
}
.admin-form-section h4 {
    font-size: 14px;
    font-weight: 650;
    margin: 0 0 6px;
}
.admin-form-section p {
    color: var(--muted);
    margin: 0;
    font-size: 13px;
}
[data-theme="dark"] .admin-ui .btn-primary:hover,
[data-theme="dark"] .admin-ui .btn-success:hover,
[data-theme="dark"] .admin-ui .btn-outline-success:hover {
    background: #8be3ce;
    border-color: #8be3ce;
    color: #102c26 !important;
}
[data-theme="dark"] .admin-ui .btn-light:hover,
[data-theme="dark"] .admin-ui .btn-outline-primary:hover,
[data-theme="dark"] .admin-ui .btn-outline-info:hover,
[data-theme="dark"] .admin-ui .btn-outline-secondary:hover {
    background: #243e49;
    border-color: #668f9d;
    color: #e7f0f4;
}
.admin-empty-state {
    padding: 36px 16px;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 7px;
    text-align: center;
}
.admin-empty-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #edf5f1;
    color: #569589;
    display: grid;
    place-items: center;
    font-size: 22px;
    margin-bottom: 6px;
}
.admin-empty-state strong {
    font-size: 13px;
    color: #405c64;
    font-weight: 600;
}
.admin-empty-state p {
    color: var(--muted);
    font-size: 12px;
    margin: 0;
    max-width: 330px;
}
.admin-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 20px;
    font-size: 11px;
    color: var(--muted);
    flex-wrap: wrap;
}
.admin-pagination .pagination {
    gap: 5px;
    margin: 0;
}
.admin-ui .page-link {
    background: var(--surface);
    color: #4a696d;
    border: 1px solid var(--line);
    border-radius: 6px;
    min-width: 33px;
    min-height: 33px;
    padding: 6px 10px;
    font-size: 11px;
}
.admin-ui .page-item.active .page-link {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.admin-ui .page-link:disabled {
    opacity: 0.5;
}
.admin-jump-results {
    max-height: 360px;
    overflow-y: auto;
    padding-top: 12px;
}
.admin-jump-results > a {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 10px;
    color: var(--ink);
    border-radius: 7px;
}
.admin-jump-results > a:hover {
    background: #edf7f3;
}
.admin-jump-results > a .bx {
    font-size: 20px;
}
.admin-jump-results > a .bx:last-child {
    margin-left: auto;
    color: #8aa4a5;
}
.admin-jump-results small {
    display: block;
    font-size: 10px;
    color: var(--muted);
}
.admin-skip-link {
    position: fixed;
    top: -70px;
    left: 20px;
    z-index: 1100;
    padding: 12px 20px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 8px 30px #0003;
}
.admin-skip-link:focus {
    top: 10px;
}
.admin-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 26px;
}
.admin-kpi {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 22px;
}
.admin-kpi-top {
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: 12px;
    align-items: center;
}
.admin-kpi-top .bx {
    font-size: 20px;
    color: #65a198;
}
.admin-kpi strong {
    font-size: 30px;
    letter-spacing: -1px;
    display: block;
    color: var(--ink);
    margin: 13px 0 5px;
    font-weight: 650;
}
.admin-kpi small {
    font-size: 11px;
    color: var(--muted);
}
.admin-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
    gap: 24px;
}
.admin-revenue-total {
    font-size: 36px;
    font-weight: 650;
    letter-spacing: -1px;
    margin: 2px 0;
    color: var(--ink);
}
.admin-chart {
    display: flex;
    height: 160px;
    gap: 6px;
    align-items: flex-end;
    padding: 20px 0 0;
    border-bottom: 1px solid var(--line);
    margin-bottom: 10px;
}
.admin-chart > div {
    flex: 1;
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: flex-end;
}
.admin-chart span {
    width: 100%;
    height: var(--bar);
    min-height: 3px;
    background: #8bc2b3;
    border-radius: 4px 4px 0 0;
}
.admin-chart > div:nth-last-child(-n + 7) span {
    background: #167e70;
}
.admin-chart-labels {
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: 10px;
}
.admin-chart-note {
    font-size: 11px;
    color: var(--muted);
    margin: 18px 0 0;
}
.admin-activity-item {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 14px 0;
    border-bottom: 1px solid #edf2f0;
}
.admin-activity-item:last-child {
    border: 0;
}
.admin-activity-item > .bx {
    padding: 10px;
    background: #edf5f2;
    border-radius: 10px;
    font-size: 20px;
    color: #3c8b7e;
}
.admin-activity-item > div {
    flex: 1;
}
.admin-activity-item strong {
    font-size: 12px;
    display: block;
}
.admin-activity-item small {
    font-size: 11px;
    color: var(--muted);
}
.admin-activity-item > a,
.admin-section-link {
    font-size: 11px;
}
.admin-quick-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.admin-quick-actions a {
    flex: 1;
    text-align: left;
    min-width: 150px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--line);
    padding: 17px;
    border-radius: 9px;
    font-size: 12px;
    color: #365b60;
}
.admin-quick-actions .bx {
    font-size: 21px;
    color: var(--accent);
}
.admin-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.admin-setting-card {
    display: flex;
    gap: 18px;
    padding: 26px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--ink) !important;
}
.admin-setting-card:hover {
    border-color: #8dbeb2;
}
.admin-setting-card > .bx {
    font-size: 24px;
    color: #318b7d;
    background: #eaf5f0;
    border-radius: 10px;
    padding: 12px;
    height: 48px;
}
.admin-setting-card h2 {
    font-size: 16px;
    margin: 0 0 8px;
}
.admin-setting-card p {
    font-size: 12px;
    color: var(--muted);
    margin: 0;
}
.admin-section-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
.admin-section-nav a {
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: 11px;
    background: white;
    color: #567578;
}
.admin-ui [id] {
    scroll-margin-top: 100px;
}
.admin-ui .chat-wrapper {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 14px;
    max-width: 100%;
    height: auto;
    overflow: hidden;
}
.admin-ui .chat-header {
    position: relative;
    width: auto;
    left: auto;
    right: auto;
    top: auto;
    height: auto;
    min-height: 80px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
    flex-wrap: wrap;
    gap: 12px;
}
.admin-ui .chat-content {
    position: relative;
    margin: 0;
    padding: 24px;
    height: auto;
    max-height: 62vh;
    overflow-y: auto;
    background: var(--surface-muted);
}
.admin-ui .chat-footer {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    background: var(--surface);
    border-top: 1px solid var(--line);
    padding: 20px;
    width: auto;
}
.admin-ui .chat-right-msg {
    background: #e4f3ec;
    color: #24534a;
    white-space: pre-wrap;
}
.admin-ui .chat-left-msg {
    background: var(--surface);
    color: #365660;
    border: 1px solid var(--line);
    white-space: pre-wrap;
}
.admin-ui .chat-time {
    color: var(--muted);
}
.admin-ui .nav-tabs .nav-link {
    color: var(--muted);
}
.admin-ui .nav-tabs .nav-link.active {
    color: var(--accent);
    background: var(--surface);
}
.admin-ui .list-group-item {
    background: var(--surface);
    color: var(--ink);
    border-color: var(--line);
}
.admin-auth-layout {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.admin-auth-story {
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    background: #0b3937;
    padding: 70px 12%;
    color: #b6d2cd;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.admin-auth-story .admin-eyebrow {
    color: #76b2a4;
    margin-top: 60px;
}
.admin-auth-story h1 {
    color: #fff;
    font-size: 48px;
    line-height: 1.15;
    letter-spacing: -2px;
    margin: 10px 0 22px;
    z-index: 1;
}
.admin-auth-story > p {
    font-size: 14px;
    line-height: 1.8;
    z-index: 1;
}
.admin-auth-story > small {
    margin-top: auto;
    padding-top: 140px;
    font-size: 11px;
}
.admin-auth-form {
    display: grid;
    place-items: center;
    padding: 40px;
}
.admin-auth-form > div {
    width: 100%;
    max-width: 370px;
}
.admin-auth-form h2 {
    font-size: 30px;
    margin-bottom: 12px;
}
.admin-auth-note {
    color: #879999;
    font-size: 11px;
    margin-top: 24px;
    text-align: center;
}
.admin-auth-orbit {
    position: absolute;
    width: 550px;
    height: 550px;
    bottom: -160px;
    right: -250px;
    border: 1px solid #376b60;
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.admin-auth-orbit span {
    position: absolute;
    border: 1px solid #376b60;
    border-radius: 50%;
    width: 70%;
    height: 70%;
}
.admin-auth-orbit span:nth-child(2) {
    width: 40%;
    height: 40%;
}
.admin-auth-orbit span:nth-child(3) {
    width: 10px;
    height: 10px;
    background: #99d2b1;
    top: 115px;
    left: 36px;
}
.admin-nav-close,
.admin-menu-button {
    display: none;
}
.admin-nav-backdrop {
    position: fixed;
    inset: 0;
    background: #193b4266;
    border: 0;
    z-index: 1034;
}
@media (max-width: 1199px) {
    :root {
        --sidebar: 224px;
    }
    .admin-main > .page-content {
        padding: 26px 24px;
    }
    .admin-topbar {
        padding: 0 24px;
    }
    .admin-kpi-grid {
        gap: 12px;
    }
    .admin-kpi {
        padding: 17px;
    }
    .admin-dashboard-grid {
        grid-template-columns: minmax(0, 1.5fr) minmax(250px, 1fr);
    }
    .admin-help-link {
        display: none;
    }
}
@media (max-width: 991px) {
    .admin-sidebar {
        transform: translateX(-100%);
        transition: transform 0.2s;
    }
    .admin-ui.admin-nav-open .admin-sidebar {
        transform: translateX(0);
    }
    .admin-main {
        margin-left: 0;
    }
    .admin-topbar {
        left: 0;
    }
    .admin-menu-button,
    .admin-nav-close {
        display: inline-flex;
        border: 0;
        background: none;
        font-size: 24px;
        color: var(--muted);
        padding: 4px;
    }
    .admin-nav-close {
        position: absolute;
        top: 29px;
        right: 10px;
    }
    .admin-brand {
        padding-left: 4px;
        font-size: 21px;
    }
    .admin-search-trigger {
        margin-right: auto;
    }
    .admin-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .admin-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .admin-auth-story {
        padding: 50px 10%;
    }
    .admin-auth-story h1 {
        font-size: 38px;
    }
}
@media (max-width: 575px) {
    .admin-main > .page-content {
        padding: 24px 16px;
    }
    .admin-topbar {
        height: 66px;
        padding: 0 16px;
        gap: 14px;
    }
    .admin-main {
        padding-top: 66px;
    }
    .admin-search-trigger kbd,
    .admin-account > span:not(.admin-avatar),
    .admin-account > .bx {
        display: none;
    }
    .admin-topbar-right {
        gap: 0;
    }
    .admin-page-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
        margin-bottom: 22px;
    }
    .admin-page-heading h1 {
        font-size: 27px;
    }
    .admin-kpi {
        padding: 16px;
    }
    .admin-kpi strong {
        font-size: 26px;
    }
    .admin-kpi-top {
        font-size: 11px;
    }
    .admin-kpi-top .bx {
        display: none;
    }
    .admin-ui .card-header,
    .admin-ui .card-body {
        padding: 17px;
    }
    .admin-ui .card-body > .d-flex {
        align-items: stretch !important;
        gap: 12px;
    }
    .admin-ui .card-body > .d-flex > .d-flex {
        flex-wrap: wrap;
    }
    .admin-ui input[type="search"] {
        min-width: 160px;
    }
    .admin-footer {
        padding: 18px 16px;
        font-size: 10px;
    }
    .admin-settings-grid {
        grid-template-columns: 1fr;
    }
    .admin-ui .modal-dialog {
        margin: 10px;
    }
    .admin-ui .modal-body {
        padding: 20px;
    }
    .admin-ui .chat-content,
    .admin-ui .chat-header {
        padding: 16px;
    }
    .admin-auth-layout {
        grid-template-columns: 1fr;
    }
    .admin-auth-story {
        display: none;
    }
    .admin-auth-form {
        min-height: 100vh;
        padding: 30px;
    }
    .admin-ui .dropdown-menu:has(.form-select) {
        min-width: 260px;
        max-width: calc(100vw - 48px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .admin-ui * {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}
@media print {
    .admin-sidebar,
    .admin-topbar,
    .admin-footer,
    .btn,
    .admin-section-nav {
        display: none !important;
    }
    .admin-main {
        margin: 0;
        padding: 0;
    }
    .admin-ui .card {
        break-inside: avoid;
        box-shadow: none;
    }
    .admin-ui {
        background: white !important;
    }
}

.admin-ui .text-light-2,
.admin-ui .text-light-3,
.admin-ui .text-secondary-light {
    color: var(--muted) !important;
}
.admin-ui .text-primary-light {
    color: var(--ink-secondary) !important;
}
.admin-form-intro {
    font-size: 12px;
    padding: 14px 16px;
    background: #eef7f3;
    border-radius: 8px;
    color: #477568;
    margin-bottom: 22px;
}
.admin-ui .table td .d-flex {
    gap: 7px;
}
.admin-ui .table td:has(.btn) {
    white-space: nowrap;
}
.admin-ui .table td .btn span {
    white-space: nowrap;
}
.admin-ui .card-header h2 {
    font-size: 15px;
}
.admin-ui .admin-legal-tabs {
    padding: 0 24px;
    border-bottom: 1px solid var(--line);
    display: flex;
    gap: 22px;
}
.admin-legal-tabs button {
    border: 0;
    background: none;
    padding: 15px 0;
    color: var(--muted);
    font-weight: 600;
    font-size: 12px;
    border-bottom: 2px solid transparent;
}
.admin-legal-tabs button.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
.admin-ui .tox-tinymce {
    border-color: var(--line);
    border-radius: 8px;
}
.admin-ui .card-body > form > .row {
    margin-bottom: 18px !important;
}
.admin-ui .card-body > form > .row label {
    margin-top: 4px;
}
.admin-ui .admin-auth-form input {
    min-height: 46px;
}

.admin-ui .btn-rounded {
    width: auto !important;
    height: auto !important;
}
.admin-ui .btn i {
    margin: 0 !important;
    line-height: 1;
}

/* Theme, dense operations tables and viewport-safe shared controls. */
:root[data-theme="light"] {
    color-scheme: light;
}
:root[data-theme="dark"] {
    color-scheme: dark;
    --surface: #16232d;
    --surface-muted: #1c2d38;
    --canvas: #0e1821;
    --ink: #e7f0f4;
    --ink-secondary: #c3d2db;
    --muted: #a0b4c0;
    --accent: #62d5bc;
    --line: #314450;
}
[data-theme="dark"] .admin-ui .btn-primary,
[data-theme="dark"] .admin-ui .btn-success,
[data-theme="dark"] .admin-ui .btn-outline-success {
    color: #102c26 !important;
}
[data-theme="dark"] .admin-brand-mark {
    color: #102c26;
}
[data-theme="dark"] .admin-nav-link.is-active,
[data-theme="dark"] .admin-nav-link:hover,
[data-theme="dark"] .admin-jump-results > a:hover,
[data-theme="dark"] .admin-ui .dropdown-item:hover,
[data-theme="dark"] .admin-quick-actions > a:hover {
    background: #203e3c;
    color: #83e4ce !important;
}
[data-theme="dark"] .admin-ui .input-group-text,
[data-theme="dark"] .admin-quick-actions > a,
[data-theme="dark"] .admin-empty-icon,
[data-theme="dark"] .admin-avatar,
[data-theme="dark"] .admin-search-trigger kbd,
[data-theme="dark"] .admin-ui .bg-light,
[data-theme="dark"] .admin-section-tabs a {
    background: var(--surface-muted) !important;
    color: var(--ink-secondary) !important;
    border-color: var(--line);
}
[data-theme="dark"] .admin-ui .text-success {
    color: #72ddb2 !important;
}
[data-theme="dark"] .admin-ui .text-danger {
    color: #ff9aa8 !important;
}
[data-theme="dark"] .admin-ui .text-warning {
    color: #edca7d !important;
}
[data-theme="dark"] .admin-ui .badge.bg-success,
[data-theme="dark"] .admin-ui .alert-success,
[data-theme="dark"] .admin-ui .bg-light-success {
    background: #1c4034 !important;
    color: #8de3bd !important;
}
[data-theme="dark"] .admin-ui .badge.bg-danger,
[data-theme="dark"] .admin-ui .btn-outline-danger,
[data-theme="dark"] .admin-ui .btn-danger,
[data-theme="dark"] .admin-ui .alert-danger {
    background: #442832 !important;
    color: #ffb4bf !important;
    border-color: #72404c;
}
[data-theme="dark"] .admin-ui .badge.bg-warning,
[data-theme="dark"] .admin-ui .btn-outline-warning {
    background: #423824 !important;
    color: #f3d695 !important;
    border-color: #6a5938;
}
[data-theme="dark"] .admin-ui .badge.bg-secondary {
    background: #2b3d49 !important;
    color: #ccdbe2 !important;
}
[data-theme="dark"] .admin-ui .badge.bg-info,
[data-theme="dark"] .admin-ui .badge.bg-primary,
[data-theme="dark"] .admin-ui .alert-info {
    background: #203e44 !important;
    color: #a2e0e4 !important;
    border-color: #355961;
}
[data-theme="dark"] .admin-ui .btn-close {
    filter: invert(1) !important;
}
[data-theme="dark"] .admin-ui .form-check-input {
    background-color: var(--surface-muted);
}
[data-theme="dark"] .admin-ui .form-check-input:checked {
    background-color: var(--accent);
}
[data-theme="dark"] .admin-ui .btn-light:hover,
[data-theme="dark"] .admin-ui .btn-outline-info:hover {
    background: var(--surface-muted);
}
[data-theme="dark"] .admin-activity-item > .bx {
    background: #203e3c;
    color: var(--accent);
}
[data-theme="dark"] .admin-ui .table th,
[data-theme="dark"] .admin-empty-state strong,
[data-theme="dark"] .admin-ui .page-link {
    color: var(--ink-secondary);
}
[data-theme="dark"] .admin-ui .swal2-styled.swal2-confirm {
    color: #102c26 !important;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-warning {
    border-color: #6a5938;
    color: #edca7d;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-info,
[data-theme="dark"] .admin-ui .swal2-icon.swal2-question {
    border-color: #355961;
    color: #a2e0e4;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-error {
    border-color: #72404c;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
    background-color: #ff9aa8;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-success .swal2-success-ring {
    border-color: #1c4034;
}
[data-theme="dark"] .admin-ui .swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: #72ddb2;
}
.admin-appearance {
    display: flex;
    gap: 8px;
    align-items: center;
}
.admin-appearance label {
    margin: 0;
}
.admin-appearance .form-select {
    font-size: 11px;
    min-height: 34px;
    padding: 6px 28px 6px 9px;
    max-width: 145px;
}
.admin-auth-appearance {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 1;
}
.admin-topbar-right {
    gap: 16px;
    min-width: 0;
}
.admin-account {
    max-width: 220px;
}
.admin-account > span:nth-child(2) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-page-heading > div,
.admin-activity-item > div,
.admin-ui .card,
.admin-main,
.admin-heading-actions {
    min-width: 0;
}
.admin-ui .card-title {
    line-height: 1.5;
}
.admin-ui .card-header {
    align-items: center;
}
.admin-ui .input-group {
    min-width: 0;
}
.admin-ui .table td {
    max-width: 300px;
    overflow-wrap: anywhere;
}
.admin-ui .table td .d-flex {
    flex-wrap: wrap;
}
.admin-table-scroll {
    border: 1px solid var(--line);
    border-radius: 10px;
}
.admin-ui .table th {
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-table-scroll {
    max-height: 72vh;
}
.admin-ui .form-select {
    padding-right: 34px;
}
.admin-ui input[type="search"] {
    min-width: 0;
}
.admin-help-tip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    vertical-align: middle;
    background: transparent;
    border: 0;
    color: var(--muted);
    border-radius: 50%;
    font-size: 17px;
    cursor: help;
    flex-shrink: 0;
}
.admin-help-tip:hover {
    color: var(--accent);
    background: var(--surface-muted);
}
.admin-tooltip {
    position: fixed;
    z-index: 12000;
    max-width: min(310px, calc(100vw - 16px));
    padding: 11px 14px;
    background: var(--ink);
    color: var(--canvas);
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.6;
    box-shadow: 0 8px 30px #0003;
    white-space: pre-line;
    overflow-wrap: anywhere;
}
.admin-filter-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 18px;
}
.admin-filter-toolbar label {
    display: grid;
    gap: 6px;
    margin: 0;
}
.admin-filter-toolbar .admin-row-count {
    display: flex;
    gap: 8px;
    align-items: center;
    white-space: nowrap;
}
.admin-filter-panel {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-muted);
    margin-bottom: 20px;
}
.admin-filter-panel > summary {
    padding: 12px 16px;
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}
.admin-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 16px;
    padding: 4px 16px 16px;
}
.admin-filter-grid label {
    display: grid;
    gap: 6px;
    align-content: start;
}
.admin-filter-grid .form-control,
.admin-filter-grid .form-select {
    width: 100%;
}
.admin-filter-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
    font-size: 12px;
}
.admin-filter-chip {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface-muted);
    color: var(--ink-secondary);
    font-size: 11px;
}
.admin-queue-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
}
.admin-queue-links a {
    padding: 8px 13px;
    border-radius: 20px;
    border: 1px solid var(--line);
    font-size: 12px;
    background: var(--surface);
}
.admin-page-guide {
    border-top: 1px solid var(--line);
    padding-top: 16px;
    margin-top: 30px;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: 12px;
}
.admin-page-guide p {
    max-width: 680px;
    margin: 0;
}
.admin-page-guide strong {
    display: block;
    margin-bottom: 5px;
    color: var(--ink);
}
.admin-page-guide nav {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
}
.admin-mini-metrics {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    margin: 20px 0;
}
.admin-mini-metrics span {
    display: block;
    font-size: 11px;
    color: var(--muted);
}
.admin-mini-metrics strong {
    font-size: 17px;
    font-variant-numeric: tabular-nums;
}
.admin-range-switch {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}
.admin-range-switch a {
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 7px;
    font-size: 12px;
}
.admin-range-switch a[aria-current] {
    background: var(--accent);
    color: var(--canvas);
}
.admin-chart {
    gap: 3px;
    height: 180px;
    background: repeating-linear-gradient(
        to top,
        transparent 0,
        transparent 39px,
        var(--line) 40px
    );
}
.admin-chart > button {
    padding: 0;
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    background: transparent;
    display: flex;
    align-items: flex-end;
    cursor: help;
}
.admin-chart > button span {
    background: #2aa58d;
    min-height: 2px;
    border-radius: 3px 3px 0 0;
}
.admin-chart > button:hover span,
.admin-chart > button:focus span {
    background: var(--accent);
}
.admin-chart > button.is-negative span {
    background: #cd6a78;
}
.admin-chart > button.is-zero span {
    background: var(--line);
}
.admin-chart-values {
    margin-top: 16px;
    font-size: 12px;
}
.admin-chart-values summary {
    cursor: pointer;
    color: var(--accent);
}
.admin-chart-values .admin-table-scroll {
    margin-top: 12px;
    max-height: 240px;
}
[data-density="compact"] .admin-ui .table td {
    padding: 9px 12px;
}
[data-density="compact"] .admin-ui .table td .btn {
    min-height: 28px;
    padding: 4px 7px;
}
@media (min-width: 992px) and (max-width: 1250px) {
    .admin-density-control,
    .admin-help-link {
        display: none;
    }
    .admin-main > .page-content {
        padding: 26px 24px;
    }
    .admin-dashboard-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 767px) {
    .admin-density-control,
    .admin-search-trigger kbd {
        display: none;
    }
    .admin-appearance .form-select {
        width: 115px;
    }
    .admin-topbar-right {
        gap: 6px;
    }
    .admin-filter-toolbar {
        grid-template-columns: 1fr auto;
    }
    .admin-filter-toolbar > label:first-child {
        grid-column: 1/-1;
    }
    .admin-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .admin-filter-grid label {
        min-width: 0;
    }
    .admin-ui .modal-dialog {
        margin: 12px auto;
    }
    .admin-ui .modal-body {
        padding: 18px;
    }
    .admin-chart {
        gap: 2px;
    }
    .admin-kpi-grid {
        gap: 12px;
    }
    .admin-kpi {
        padding: 16px;
    }
    .admin-mini-metrics {
        gap: 16px;
    }
}
@media (max-width: 420px) {
    .admin-filter-grid {
        grid-template-columns: 1fr;
    }
    .admin-search-trigger span {
        display: none;
    }
    .admin-search-trigger {
        padding: 8px;
    }
    .admin-topbar {
        gap: 8px;
    }
    .admin-activity-item {
        flex-wrap: wrap;
    }
}
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

[data-theme="dark"] .admin-section-nav a,
[data-theme="dark"] .admin-ui .chat-left-msg,
[data-theme="dark"] .admin-legal-tabs button {
    background: var(--surface);
    color: var(--ink-secondary);
}
[data-theme="dark"] .admin-ui .chat-right-msg,
[data-theme="dark"] .admin-setting-card > .bx,
[data-theme="dark"] .admin-legal-tabs button.active {
    background: #203e3c;
    color: #a5e4d4;
}
[data-theme="dark"] .admin-ui .text-light-3 {
    color: var(--muted) !important;
}
.admin-ui .card-footer {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}
.admin-legal-tabs {
    flex-wrap: wrap;
}
.admin-kpi-top {
    gap: 10px;
}
.admin-filter-toolbar .admin-row-count .form-select {
    max-width: 80px;
}

.admin-ui .text-light-2,
.admin-ui .text-light-3 {
    color: var(--muted) !important;
}
.admin-ui .chat-left-msg,
.admin-ui .chat-right-msg {
    overflow-wrap: anywhere;
    max-width: 100%;
}
.admin-ui .chat-header > div {
    min-width: 0;
}
.admin-ui .chat-header h5 {
    overflow-wrap: anywhere;
    line-height: 1.5;
}
.admin-ui .chat-footer textarea {
    width: 100%;
}
@media (max-width: 767px) {
    .admin-ui .chat-header {
        padding: 16px;
    }
    .admin-ui .chat-content {
        padding: 16px;
    }
    .admin-ui .chat-footer {
        padding: 14px;
    }
    .admin-ui .chat-content .d-flex {
        min-width: 0;
    }
    .admin-ui .modal-footer .btn {
        flex: 1;
    }
    .admin-ui .card-body > .d-flex.justify-content-between {
        flex-wrap: wrap;
        gap: 12px;
    }
}

/* Security flows share one focused, responsive card in both colour themes. */
.admin-auth-centered {
    display: flex;
    min-height: 100dvh;
    align-items: center;
    justify-content: center;
    padding: 88px 20px 32px;
}
.admin-auth-centered .admin-auth-form {
    width: min(100%, 500px);
    padding: 36px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--surface);
    box-shadow: 0 20px 60px rgb(0 0 0 / 6%);
}
.admin-auth-centered .admin-auth-form > div {
    width: 100%;
    max-width: none;
}
.admin-auth-centered h1 {
    font-size: clamp(25px, 4vw, 32px);
    line-height: 1.2;
}
.admin-security-qr {
    display: flex;
    justify-content: center;
    margin: 24px auto;
    padding: 8px;
    background: white;
    width: fit-content;
    border-radius: 12px;
}
.admin-security-qr svg {
    width: 220px;
    height: 220px;
    max-width: 100%;
}
.admin-security-secret {
    display: block;
    padding: 12px;
    background: var(--surface-muted);
    overflow-wrap: anywhere;
}
.admin-recovery-codes {
    list-style: none;
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 24px 0;
}
.admin-recovery-codes li {
    background: var(--surface-muted);
    padding: 9px;
    border-radius: 6px;
    overflow-wrap: anywhere;
}
.admin-recovery-codes code {
    font-size: 12px;
}
.admin-security-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 16px;
    margin: 24px 0;
}
.admin-security-summary > div {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px;
}
.admin-security-summary strong {
    display: block;
    font-size: 30px;
    margin: 6px 0;
}
.admin-security-summary p {
    margin: 0;
    color: var(--muted);
}
.admin-action-progress {
    position: fixed;
    z-index: 1100;
    bottom: 24px;
    right: 24px;
    background: var(--ink);
    color: var(--surface);
    border-radius: 30px;
    padding: 10px 18px;
    box-shadow: 0 3px 20px rgb(0 0 0 / 15%);
}
.admin-ui summary {
    cursor: pointer;
    color: var(--accent);
    font-weight: 600;
}
@media (max-width: 576px) {
    .admin-auth-centered .admin-auth-form {
        padding: 24px;
    }
    .admin-auth-centered {
        padding-inline: 14px;
    }
    .admin-action-progress {
        bottom: 12px;
        right: 12px;
    }
}

.admin-ui .admin-auth-centered .admin-auth-form .form-check-input {
    min-height: 1em;
    height: 1em;
    width: 1em;
    margin-top: 0.3em;
}

.admin-wrap-anywhere {
    overflow-wrap: anywhere;
}
.admin-auth .btn-link {
    color: var(--accent);
}
.admin-verification-choices {
    display: grid;
    gap: 12px;
    margin: 24px 0 0;
    min-width: 0;
}
.admin-verification-choice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
    transition:
        border-color 150ms ease,
        background 150ms ease;
}
.admin-verification-choice:has(input:checked) {
    border-color: var(--accent);
    background: var(--surface-muted);
}
.admin-verification-choice:has(input:focus-visible) {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
.admin-verification-choice:has(input:disabled) {
    cursor: default;
}
.admin-verification-choice > span {
    min-width: 0;
}
.admin-verification-choice-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-weight: 700;
    margin-bottom: 8px;
}
.admin-verification-choice-title .badge {
    font-size: 10px;
}
.admin-verification-choice-description {
    display: block;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.65;
    color: var(--muted);
}
.admin-ui .admin-auth-centered .admin-verification-choice input {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin-top: 2px;
    padding: 0;
    accent-color: var(--accent);
}
.admin-email-delivery {
    display: flex;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--line);
    background: var(--surface-muted);
    border-radius: 12px;
}
.admin-email-delivery > i {
    flex-shrink: 0;
    color: var(--accent);
    font-size: 24px;
}
.admin-email-delivery > div {
    min-width: 0;
}
@media (prefers-reduced-motion: reduce) {
    .admin-verification-choice {
        transition: none;
    }
}

/* Shared table workspace: readable records, explicit scrolling and local column preferences. */
.admin-ui .admin-data-table {
    min-width: max-content;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
.admin-ui .admin-data-table th {
    padding: 13px 16px;
    font-size: 11px;
    letter-spacing: 0.4px;
    border-bottom: 1px solid var(--line);
}
.admin-ui .admin-data-table td {
    padding: 15px 16px;
    font-size: 13px;
    line-height: 1.5;
    white-space: nowrap;
    overflow-wrap: normal;
    min-width: 110px;
}
.admin-ui .admin-data-table td small {
    margin-top: 3px;
    font-size: 11px;
}
.admin-ui .admin-data-table .admin-cell-small {
    min-width: 48px;
    width: 48px;
    font-variant-numeric: tabular-nums;
}
.admin-ui .admin-data-table .admin-cell-wrap {
    min-width: 200px;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: break-word;
}
.admin-ui .admin-data-table .admin-cell-actions {
    min-width: 0;
}
.admin-ui .admin-data-table .admin-cell-actions .d-flex {
    flex-wrap: nowrap;
}
.admin-ui .admin-data-table .admin-cell-actions .btn {
    min-height: 34px;
}
.admin-ui .admin-data-table .admin-cell-actions button[aria-label="Edit"] span,
.admin-ui
    .admin-data-table
    .admin-cell-actions
    button[aria-label="Delete"]
    span {
    display: none;
}
.admin-ui .admin-data-table .admin-cell-actions button[aria-label="Edit"],
.admin-ui .admin-data-table .admin-cell-actions button[aria-label="Delete"] {
    width: 34px;
    padding: 5px;
}
.admin-ui .admin-data-table tr:has(input[type="checkbox"]:checked) {
    background: color-mix(in srgb, var(--accent) 9%, var(--surface));
}
.admin-ui .admin-data-table [hidden] {
    display: none !important;
}
.admin-table-scroll:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
.admin-table-tools,
.admin-table-options,
.admin-table-density,
.admin-table-scroll-tools,
.admin-table-scroll-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}
.admin-table-tools {
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 8px 0 12px;
}
.admin-table-count {
    color: var(--muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.admin-table-density {
    font-size: 12px;
    margin: 0;
    color: var(--muted);
}
.admin-table-density .form-select {
    width: auto;
    min-height: 34px;
    font-size: 12px;
}
.admin-column-chooser {
    position: relative;
    font-size: 12px;
    color: var(--ink-secondary);
}
.admin-column-chooser summary {
    cursor: pointer;
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 8px 12px;
    background: var(--surface);
}
.admin-column-panel {
    position: absolute;
    z-index: 20;
    top: calc(100% + 8px);
    right: 0;
    width: 270px;
    max-width: calc(100vw - 64px);
    max-height: 370px;
    overflow: auto;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 10px 28px #102b3426;
}
.admin-column-panel p {
    font-size: 11px;
    color: var(--muted);
    margin: 5px 0 12px;
}
.admin-column-panel label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    margin: 0;
    font-weight: 500;
}
.admin-column-panel .form-check-input {
    margin: 0;
    flex: 0 0 16px;
}
.admin-column-panel .btn {
    margin-top: 10px;
    width: 100%;
}
.admin-table-scroll-tools {
    justify-content: space-between;
    min-height: 38px;
    margin-top: 8px;
    font-size: 11px;
    color: var(--muted);
}
.admin-table-scroll-buttons .btn {
    min-width: 34px;
    min-height: 30px;
    padding: 3px 8px;
}
.admin-table-scroll-buttons[hidden] {
    display: none;
}
.admin-sort-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    min-height: 22px;
    border: 0;
    background: none;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    color: inherit;
    cursor: pointer;
}
.admin-sort-button:hover,
th[aria-sort="ascending"] .admin-sort-button,
th[aria-sort="descending"] .admin-sort-button {
    color: var(--accent);
}
.admin-filter-toolbar .admin-search-field {
    flex: 1 1 250px;
}
.admin-filter-toolbar .admin-sort-field {
    flex: 0 1 190px;
}
.admin-filter-toolbar .admin-sort-field .form-select {
    width: 100%;
}
.admin-filter-summary:empty {
    display: none;
}
.admin-customer-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}
.admin-customer-avatar {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: var(--surface-muted);
    color: var(--accent);
    font-weight: 650;
    flex-shrink: 0;
}
.admin-customer-cell strong {
    display: block;
    font-size: 13px;
    color: var(--ink);
}
.admin-customer-cell small {
    display: block;
    color: var(--muted);
}
.admin-page-jump {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}
.admin-page-jump label {
    margin: 0;
}
.admin-page-jump .form-control {
    width: 68px;
    min-height: 34px;
    padding: 5px 8px;
}
.admin-page-jump .btn {
    min-height: 34px;
    padding: 5px 10px;
}
@media (max-width: 575px) {
    .admin-table-tools {
        align-items: flex-start;
    }
    .admin-table-options {
        width: 100%;
        justify-content: space-between;
    }
    .admin-filter-toolbar .admin-sort-field {
        flex: 1 1 150px;
    }
}
@media print {
    .admin-table-tools,
    .admin-table-scroll-tools,
    .admin-page-jump {
        display: none;
    }
    .admin-table-scroll {
        max-height: none;
    }
}
.admin-filter-summary:not(:has(.admin-filter-chip)) {
    margin-bottom: 0;
}
.admin-table-tools:empty,
.admin-table-scroll-tools:empty {
    display: none;
}
.admin-customer-cell strong a {
    color: var(--ink);
    text-decoration: none;
}
.admin-customer-cell strong a:hover {
    color: var(--accent);
    text-decoration: underline;
}
.admin-ui .admin-data-table td {
    font-variant-numeric: tabular-nums;
}

/* Menus, dialogs and what renders inside them follow the admin theme. The dark template
   stylesheets loaded before this file (bootstrap-extended.css, custom.css) set fixed colours. */
.admin-ui select option,
.admin-ui select optgroup {
    background-color: var(--surface);
}
.admin-ui .modal-backdrop.fade.show {
    z-index: 1050;
}
.admin-ui #logJsonPre {
    background-color: var(--surface-muted) !important;
    color: var(--ink) !important;
    border-color: var(--line) !important;
}
.admin-ui .form-control::file-selector-button {
    color: var(--ink-secondary);
    background-color: var(--surface-muted);
    border-color: var(--line);
}
.admin-ui .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
    background-color: var(--line);
}
.admin-ui .filepond--panel-root {
    background-color: var(--surface-muted);
    border: 1px solid var(--line);
}
.admin-ui .filepond--label-action {
    text-decoration-color: var(--muted);
}
.admin-ui .bg-light-info {
    background: #e6f3f1 !important;
    color: #087367 !important;
}
[data-theme="dark"] .admin-ui .dropdown-item:hover,
[data-theme="dark"] .admin-ui .dropdown-item:focus,
[data-theme="dark"] .admin-ui .dropdown-item:active,
[data-theme="dark"] .admin-ui .dropdown-item.active {
    background-color: #203e3c !important;
    color: #83e4ce !important;
}
[data-theme="dark"] .admin-ui .badge-light-success {
    background: #1c4034 !important;
    color: #8de3bd !important;
}
[data-theme="dark"] .admin-ui .badge-light-danger {
    background: #442832 !important;
    color: #ffb4bf !important;
}
[data-theme="dark"] .admin-ui .badge-light-warning {
    background: #423824 !important;
    color: #f3d695 !important;
}
[data-theme="dark"] .admin-ui .badge-light-info,
[data-theme="dark"] .admin-ui .bg-light-info {
    background: #203e44 !important;
    color: #a2e0e4 !important;
}
[data-theme="dark"] .admin-form-intro {
    background: #203e3c;
    color: #a5e4d4;
}
[data-theme="dark"] .admin-ui .form-check-input:checked[type="checkbox"] {
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23102c26' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
