:root {
    --admin-font: "Manrope", "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --admin-bg: #05070d;
    --admin-bg-soft: #0a0e17;
    --admin-card: rgba(18, 22, 33, 0.78);
    --admin-card-solid: #121827;
    --admin-border: rgba(255, 255, 255, 0.12);
    --admin-border-strong: rgba(255, 255, 255, 0.2);
    --admin-text: #e8edf8;
    --admin-muted: #96a4c2;
    --admin-primary: #4e9dff;
    --admin-primary-strong: #2d78ff;
    --admin-focus: rgba(78, 157, 255, 0.35);
    --admin-success: #13b67a;
    --admin-warning: #d59c2f;
    --admin-danger: #ef4d67;
    --admin-radius-sm: 10px;
    --admin-radius-md: 14px;
    --admin-radius-lg: 18px;
    --admin-shadow-lg: 0 18px 48px rgba(0, 0, 0, 0.45);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body.admin-bg,
body.admin-login-bg {
    position: relative;
    margin: 0;
    color: var(--admin-text);
    background: radial-gradient(circle at 15% -10%, rgba(78, 157, 255, 0.18), transparent 38%),
                radial-gradient(circle at 95% 0, rgba(35, 120, 210, 0.14), transparent 32%),
                linear-gradient(180deg, #070b14 0%, #04060c 100%);
    font-family: var(--admin-font);
}

body.admin-bg::before,
body.admin-login-bg::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.26) 0 1px, transparent 1.6px),
        radial-gradient(circle at 72% 24%, rgba(255, 255, 255, 0.2) 0 1px, transparent 1.6px),
        radial-gradient(circle at 48% 72%, rgba(255, 255, 255, 0.2) 0 1px, transparent 1.6px),
        radial-gradient(circle at 85% 62%, rgba(255, 255, 255, 0.24) 0 1px, transparent 1.6px),
        radial-gradient(circle at 26% 84%, rgba(255, 255, 255, 0.22) 0 1px, transparent 1.6px);
    background-size: 320px 320px, 420px 420px, 380px 380px, 460px 460px, 340px 340px;
    opacity: 0.35;
    z-index: 0;
}

body.admin-bg::after,
body.admin-login-bg::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 90px 90px;
    opacity: 0.08;
    z-index: 0;
}

.admin-shell {
    position: relative;
    z-index: 1;
    min-height: 100vh;
}

.admin-container {
    width: min(1280px, calc(100% - 2rem));
    margin-inline: auto;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    padding: 18px 0 12px;
    backdrop-filter: blur(18px) saturate(150%);
    background:
        radial-gradient(circle at 18% 0, rgba(78, 157, 255, 0.16), transparent 30%),
        linear-gradient(180deg, rgba(6, 10, 18, 0.9), rgba(6, 10, 18, 0.42));
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-topbar-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
}

.admin-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--admin-text);
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.admin-brand:hover {
    color: #fff;
}

.admin-brand-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(135deg, #6cb6ff, #2f80ff);
    box-shadow: 0 0 0 4px rgba(78, 157, 255, 0.2);
}

.admin-tab-nav {
    justify-content: center;
    display: inline-flex;
    gap: 6px;
    justify-self: center;
    padding: 6px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04)),
        linear-gradient(135deg, rgba(10, 20, 44, 0.78), rgba(10, 20, 44, 0.54));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 18px 45px rgba(0, 0, 0, 0.38);
    backdrop-filter: blur(22px) saturate(160%);
}

.admin-tab-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--admin-muted);
    text-decoration: none;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 0.87rem;
    font-weight: 600;
    transition: 0.18s ease;
    border: 1px solid transparent;
}

.admin-tab-link:hover {
    color: #fff;
    background: transparent;
}

.admin-tab-link.active {
    color: #f6f9ff;
    background: linear-gradient(135deg, rgba(41, 121, 255, 0.35), rgba(90, 124, 255, 0.25));
    border-color: rgba(118, 158, 255, 0.45);
}

.admin-tab-link i {
    font-size: 0.92rem;
}

.admin-topbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.admin-user {
    color: var(--admin-muted);
    font-size: 0.86rem;
    max-width: 230px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-btn-outline {
    border: 1px solid var(--admin-border-strong);
    color: var(--admin-text);
    background: rgba(255, 255, 255, 0.03);
    border-radius: 999px;
    padding-inline: 14px;
}

.admin-btn-outline:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.4);
    background: transparent;
}

.admin-menu-btn {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid var(--admin-border-strong);
    background: rgba(255, 255, 255, 0.05);
    color: #f4f7ff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.admin-menu-btn i {
    font-size: 1.15rem;
}

.admin-main {
    padding: 28px 0 38px;
}

.admin-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.admin-page-kicker {
    color: var(--admin-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
}

.admin-page-title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.admin-page-subtitle {
    color: var(--admin-muted);
    font-size: 0.92rem;
    margin: 4px 0 0;
}

.admin-card,
.admin-panel,
.admin-kpi,
.admin-kv {
    background: var(--admin-card);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-lg);
    box-shadow: var(--admin-shadow-lg);
    backdrop-filter: blur(10px);
}

.admin-panel {
    padding: 16px;
}

.admin-card {
    overflow: hidden;
}

.admin-kpi {
    padding: 14px;
    height: 100%;
}

.admin-kpi-label {
    color: var(--admin-muted);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.admin-kpi strong {
    display: block;
    font-size: 1.6rem;
    margin-top: 6px;
    line-height: 1.1;
}

.admin-kpi-value {
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 6px;
    line-height: 1.1;
}

.admin-kv {
    padding: 12px 14px;
    display: grid;
    gap: 4px;
}

.admin-kv strong {
    color: var(--admin-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.admin-filter-bar,
.admin-sticky-filters {
    position: sticky;
    z-index: 25;
    background: rgba(10, 14, 22, 0.88);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-md);
    padding: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.32);
}

.admin-toolbar,
.admin-sticky-actions {
    position: static;
    top: auto;
    z-index: auto;
    background: rgba(10, 14, 22, 0.9);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius-md);
    padding: 10px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.admin-toolbar .btn,
.admin-sticky-actions .btn {
    border-radius: 10px;
}

.admin-card .table,
.admin-panel .table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-color: var(--admin-text);
    --bs-table-border-color: rgba(255, 255, 255, 0.09);
    --bs-table-hover-bg: transparent;
    --bs-table-hover-color: #fff;
    margin-bottom: 0;
}

.admin-card .table th,
.admin-panel .table th {
    color: #dce4f7;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.admin-card .table td,
.admin-panel .table td {
    vertical-align: top;
}

.admin-card .form-control,
.admin-card .form-select,
.admin-panel .form-control,
.admin-panel .form-select,
.admin-filter-bar .form-control,
.admin-filter-bar .form-select {
    color: var(--admin-text);
    border-radius: 10px;
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(9, 13, 21, 0.78);
}

.admin-card .form-control::placeholder,
.admin-panel .form-control::placeholder,
.admin-filter-bar .form-control::placeholder {
    color: rgba(162, 177, 209, 0.7);
}

.admin-card .form-control:focus,
.admin-card .form-select:focus,
.admin-panel .form-control:focus,
.admin-panel .form-select:focus,
.admin-filter-bar .form-control:focus,
.admin-filter-bar .form-select:focus {
    border-color: var(--admin-primary);
    box-shadow: 0 0 0 0.2rem var(--admin-focus);
}

.admin-card .btn-primary,
.admin-panel .btn-primary,
.admin-filter-bar .btn-primary {
    background: linear-gradient(135deg, #2f80ff, #4aa7ff);
    border-color: transparent;
    color: #fff;
}

.admin-card .btn-primary:hover,
.admin-panel .btn-primary:hover,
.admin-filter-bar .btn-primary:hover {
    filter: brightness(1.05);
}

.admin-card .btn-outline-secondary,
.admin-panel .btn-outline-secondary {
    color: #d8e2f8;
    border-color: rgba(255, 255, 255, 0.2);
}

.admin-card .btn-outline-secondary:hover,
.admin-panel .btn-outline-secondary:hover,
.admin-card .btn-outline-secondary.active,
.admin-panel .btn-outline-secondary.active {
    color: #fff;
    border-color: rgba(130, 171, 255, 0.5);
    background: transparent;
}

.admin-card .btn-outline-primary,
.admin-panel .btn-outline-primary {
    border-color: rgba(99, 163, 255, 0.55);
    color: #dce9ff;
}

.admin-card .btn-outline-primary:hover,
.admin-panel .btn-outline-primary:hover {
    background: transparent;
    color: #fff;
}

.admin-card .btn-outline-danger,
.admin-panel .btn-outline-danger {
    border-color: rgba(239, 77, 103, 0.7);
    color: #ffced6;
}

.admin-card .btn-outline-danger:hover,
.admin-panel .btn-outline-danger:hover {
    background: transparent;
    color: #fff;
}

.admin-card .input-group-text {
    color: #9aa8c7;
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(9, 13, 21, 0.78);
}

.admin-card .btn-success {
    background: linear-gradient(135deg, #129869, #13b67a);
    border-color: transparent;
}

.admin-card .btn-danger {
    background: linear-gradient(135deg, #d83756, #ef4d67);
    border-color: transparent;
}

.admin-alert {
    border-radius: var(--admin-radius-md);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(8px);
}

.admin-status-new { background: #334155 !important; }
.admin-status-approved { background: #205ed0 !important; }
.admin-status-rejected { background: #a0273d !important; }
.admin-status-queued { background: #2e5de0 !important; }
.admin-status-processed { background: #1a8f63 !important; }
.admin-status-skipped { background: #a46a11 !important; }
.admin-status-failed { background: #bb3245 !important; }
.admin-status-duplicate { background: #7655d5 !important; }
.admin-status-pending { background: #4f607e !important; }
.admin-status-processing { background: #2f80ff !important; }
.admin-status-done { background: #14a06d !important; }
.admin-status-unknown { background: #57627d !important; }
.admin-status-missing-data { background: #8a6a2a !important; }

.admin-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.35rem 0.55rem;
    font-size: 0.73rem;
    font-weight: 700;
    text-transform: lowercase;
    letter-spacing: 0.02em;
}

.admin-inline-input {
    width: 130px;
}

.admin-text-view {
    background: rgba(8, 12, 19, 0.85);
    color: var(--admin-text);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    padding: 12px;
    white-space: pre-wrap;
    max-height: 560px;
    overflow: auto;
}

.admin-overlay-scroll {
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(8, 12, 19, 0.8);
    padding: 0;
}

.admin-overlay-canvas {
    position: relative;
    width: 100%;
    min-width: 320px;
    aspect-ratio: var(--overlay-aspect, 1 / 1);
}

.admin-overlay-canvas img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.admin-overlay-layer {
    position: absolute;
    inset: 0;
}

.admin-word-box {
    position: absolute;
    border: 1px solid rgba(78, 157, 255, 0.55);
    background: rgba(78, 157, 255, 0.1);
}

.admin-empty {
    color: var(--admin-muted);
    text-align: center;
    padding: 22px 10px;
}

.admin-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 70;
    background: rgba(4, 6, 10, 0.7);
    backdrop-filter: blur(2px);
}

.admin-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(88vw, 330px);
    height: 100vh;
    z-index: 80;
    transform: translateX(102%);
    opacity: 0;
    transition: transform 1.5s ease, opacity 1.5s ease;
    background: linear-gradient(180deg, #0f1420, #0b101a);
    border-left: 1px solid var(--admin-border);
    display: flex;
    flex-direction: column;
    pointer-events: none;
    will-change: transform, opacity;
}

.admin-drawer.is-open {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
    animation: adminDrawerPullOut 1.5s ease;
}

.admin-drawer.is-closing {
    pointer-events: none;
    animation: adminDrawerPullIn 1.5s ease;
}

@keyframes adminDrawerPullOut {
    0% {
        transform: translateX(108%);
        opacity: 0;
    }
    60% {
        transform: translateX(-2%);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes adminDrawerPullIn {
    0% {
        transform: translateX(0);
        opacity: 1;
    }
    45% {
        transform: translateX(3%);
        opacity: 1;
    }
    100% {
        transform: translateX(108%);
        opacity: 0;
    }
}

.admin-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px;
    border-bottom: 1px solid var(--admin-border);
}

.admin-drawer-title {
    font-size: 1.1rem;
    font-weight: 700;
}

.admin-drawer-close {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid var(--admin-border-strong);
    background: rgba(255, 255, 255, 0.04);
    color: #f3f7ff;
}

.admin-drawer-nav {
    display: grid;
    gap: 8px;
    padding: 16px;
}

.admin-drawer-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--admin-muted);
    border-radius: 12px;
    border: 1px solid transparent;
    padding: 10px 12px;
    font-weight: 600;
}

.admin-drawer-link:hover {
    color: #fff;
    background: transparent;
}

.admin-drawer-link.active {
    color: #f8fbff;
    background: linear-gradient(135deg, rgba(57, 103, 255, 0.45), rgba(107, 79, 255, 0.25));
    border-color: rgba(124, 147, 255, 0.5);
}

.admin-drawer-foot {
    margin-top: auto;
    padding: 16px;
    border-top: 1px solid var(--admin-border);
}

.admin-drawer-user {
    color: var(--admin-muted);
    font-size: 0.85rem;
    margin-bottom: 10px;
    overflow-wrap: anywhere;
}

.admin-no-scroll {
    overflow: hidden;
}

.admin-wrap {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-inbox-table td {
    padding: 0.7rem 0.5rem;
}

@media (min-width: 992px) {
    .admin-inbox-table th:nth-child(3),
    .admin-inbox-table td:nth-child(3) {
        min-width: 210px; /* Source */
    }

    .admin-inbox-table th:nth-child(7),
    .admin-inbox-table td:nth-child(7) {
        min-width: 220px; /* URL */
    }

    .admin-inbox-table th:nth-child(8),
    .admin-inbox-table td:nth-child(8) {
        min-width: 320px; /* Error */
    }

    .admin-inbox-table th:nth-child(9),
    .admin-inbox-table td:nth-child(9) {
        min-width: 92px; /* Akce */
        white-space: nowrap;
    }
}

@media (max-width: 991.98px) {
    .admin-topbar {
        padding-top: 12px;
        padding-bottom: 10px;
    }

    .admin-topbar-inner {
        grid-template-columns: 1fr auto;
    }

    .admin-main {
        padding-top: 18px;
    }

    .admin-filter-bar,
    .admin-sticky-filters,
    .admin-toolbar,
    .admin-sticky-actions {
        position: static;
    }

    .admin-table-mobile thead {
        display: none;
    }

    .admin-table-mobile,
    .admin-table-mobile tbody,
    .admin-table-mobile tr,
    .admin-table-mobile td {
        display: block;
        width: 100%;
    }

    .admin-table-mobile tr {
        margin-bottom: 12px;
        padding: 10px;
        border: 1px solid rgba(255, 255, 255, 0.11);
        border-radius: 12px;
        background: rgba(11, 15, 24, 0.82);
    }

    .admin-table-mobile td {
        border: 0;
        padding: 5px 0;
        display: grid;
        grid-template-columns: minmax(104px, 36%) minmax(0, 1fr);
        gap: 8px;
        align-items: start;
        overflow-wrap: anywhere;
    }

    .admin-inbox-table.admin-table-mobile td {
        padding: 0.7rem 0.5rem;
    }

    .admin-table-mobile td::before {
        content: attr(data-label);
        color: #9aa8c7;
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.06em;
    }

    .admin-table-mobile td[data-label="Select"] {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding-bottom: 6px;
    }

    .admin-table-mobile td[data-label="Select"]::before {
        content: none;
    }
}

@media (max-width: 575.98px) {
    .admin-container {
        width: calc(100% - 1rem);
    }

    .admin-page-title {
        font-size: 1.2rem;
    }

    .admin-card,
    .admin-panel,
    .admin-kpi,
    .admin-kv {
        border-radius: 14px;
    }
}
