/* ============================================================
   CUSTOM ADMIN THEME - Modern & Clean
   Barevne schema: hneda/zlata (bakery brand)
   ============================================================ */

/* --- CSS Promenne --- */
:root {
    --brand-primary: #b88b59;
    --brand-primary-dark: #9a6f3e;
    --brand-primary-light: #d4b68a;
    --brand-primary-soft: rgba(184, 139, 89, 0.12);
    --brand-secondary: #6d4c41;
    --brand-accent: #D4A373;
    --brand-text: #495057;
    --brand-muted: #878a99;
    --brand-bg: #f8f9fa;
    --brand-card-bg: #ffffff;
    --brand-border: #e9ebec;
    --brand-radius: 0.5rem;
    --brand-radius-lg: 0.75rem;
    --brand-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
    --brand-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.06), 0 2px 4px -2px rgba(0, 0, 0, 0.06);
    --brand-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.06), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
    --brand-transition: all 0.2s ease;
}

/* --- Globalni --- */
body {
    color: var(--brand-text);
    background-color: var(--brand-bg);
}

a {
    color: var(--brand-secondary) !important;
    transition: var(--brand-transition);
}

a:hover {
    color: var(--brand-primary) !important;
}

/* --- Preloader --- */
#preloader {
    background-color: rgba(250, 250, 250, 0.72);
}

/* --- Karty --- */
.card {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow);
    transition: var(--brand-transition);
}

.card:hover {
    box-shadow: var(--brand-shadow-md);
}

.card-header {
    background-color: transparent;
    border-bottom: 1px solid var(--brand-border);
    padding: 1rem 1.25rem;
}

.card-header .card-title {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--brand-text);
    margin-bottom: 0;
}

.card-body {
    padding: 1.25rem;
}

/* Dashboard stat karty */
.card-animate {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
}

.card-animate:hover {
    transform: translateY(-2px);
    box-shadow: var(--brand-shadow-lg);
}

/* --- Tlacitka --- */
.btn {
    font-weight: 500;
    border-radius: var(--brand-radius);
    transition: var(--brand-transition);
    font-size: 0.8125rem;
    letter-spacing: 0.01em;
}

.btn-primary {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #fff !important;
    padding: 0.5rem 1rem;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--brand-primary-dark) !important;
    border-color: var(--brand-primary-dark) !important;
    box-shadow: 0 4px 8px rgba(184, 139, 89, 0.25);
}

.btn-secondary {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #fff !important;
    padding: 0.5rem 1rem;
}

.btn-secondary:hover,
.btn-secondary:focus {
    background-color: var(--brand-primary-dark) !important;
    border-color: var(--brand-primary-dark) !important;
}

.btn-success {
    border-radius: var(--brand-radius);
}

.btn-danger {
    border-radius: var(--brand-radius);
}

.btn-soft-primary {
    background-color: var(--brand-primary-soft) !important;
    color: var(--brand-primary) !important;
}

.btn-soft-primary:hover {
    background-color: var(--brand-primary) !important;
    color: #fff !important;
}

.btn-edit {
    background-color: var(--brand-secondary);
    color: #fff;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1rem;
}

.btn-edit:hover {
    background-color: #3b2d0c;
    color: #fff;
}

.btn-delete {
    background-color: #e74c3c;
    color: #fff;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1rem;
}

.btn-delete:hover {
    background-color: #c0392b;
}

.btn-export {
    background-color: #5bc0de;
    color: #fff;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1rem;
}

.btn-export:hover {
    background-color: #3498db;
}

.btn-save {
    background-color: #27ae60;
    color: #fff;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1rem;
}

.btn-save:hover {
    background-color: #229954;
}

/* E-shop tlacitka */
.btn-add-to-cart {
    background-color: var(--brand-primary);
    color: #fff !important;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1.25rem;
    font-weight: 500;
    transition: var(--brand-transition);
}

.btn-add-to-cart:hover {
    background-color: var(--brand-primary-dark);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(184, 139, 89, 0.25);
}

.btn-in-cart {
    background-color: var(--brand-primary-light);
    color: #fff !important;
    border: none;
    border-radius: var(--brand-radius);
    padding: 0.5rem 1.25rem;
    transition: var(--brand-transition);
}

.btn-in-cart:hover,
.btn-in-cart:active {
    background-color: var(--brand-secondary);
}

.btn-pin {
    border: none;
    border-radius: 50%;
    padding: 0.5rem;
    transition: var(--brand-transition);
}

.btn-pin:hover {
    background-color: var(--brand-secondary);
    color: #fff !important;
}

/* --- Formulare --- */
.form-control:focus,
.form-select:focus {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 0.2rem var(--brand-primary-soft) !important;
}

.form-check-input:checked {
    border-color: var(--brand-primary);
    background-color: var(--brand-primary);
}

.form-radio-primary .form-check-input:checked {
    border-color: var(--brand-primary);
    background-color: var(--brand-primary);
}

.form-label {
    font-weight: 500;
    font-size: 0.8125rem;
    color: var(--brand-text);
    margin-bottom: 0.375rem;
}

/* --- Navigace & Sidebar --- */

.nav-link.active {
    color: var(--brand-primary) !important;
}

a.nav-link.active {
    color: var(--brand-primary) !important;
}

.nav-tabs-custom .nav-item .nav-link::after {
    background: var(--brand-primary) !important;
}

.nav-tabs .nav-link.active {
    background-color: var(--brand-primary);
    color: #fff;
    border-color: var(--brand-primary);
}

.nav-tabs .nav-link {
    color: var(--brand-muted);
    font-weight: 500;
    border-radius: var(--brand-radius) var(--brand-radius) 0 0;
    transition: var(--brand-transition);
}

.nav-tabs .nav-link:hover {
    color: var(--brand-primary) !important;
}

/* --- Strankovani --- */
.active > .page-link,
.page-link.active {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #fff !important;
}

.page-link {
    color: var(--brand-secondary) !important;
    border-radius: var(--brand-radius);
    margin: 0 2px;
    transition: var(--brand-transition);
}

.page-link:hover {
    background-color: var(--brand-primary-soft);
    color: var(--brand-primary) !important;
}

/* --- DataGrid --- */
.datagrid .table {
    border-collapse: separate;
    border-spacing: 0;
}

.datagrid .table thead th {
    background-color: #f8f9fa;
    border-bottom: 2px solid var(--brand-border);
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--brand-muted);
    padding: 0.75rem;
    white-space: nowrap;
}

.datagrid .table tbody td {
    padding: 0.75rem;
    vertical-align: middle;
    border-bottom: 1px solid #f3f3f5;
    font-size: 0.8125rem;
}

.datagrid .table tbody tr {
    transition: var(--brand-transition);
}

.datagrid .table tbody tr:hover {
    background-color: var(--brand-primary-soft) !important;
}

.datagrid .btn,
.datagrid .datagrid-select {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius);
    padding: 0.375rem 0.625rem;
    text-align: center;
    font-size: 0.8rem;
    transition: var(--brand-transition);
}

.datagrid .btn:hover {
    border-color: var(--brand-primary);
}

.datagrid .col-action .btn {
    padding: 0.25rem 0.5rem;
    margin: 0 1px;
}

/* DataGrid radek skupiny akci */
.row-group-actions th {
    background-color: #f8f7f5 !important;
    border-bottom: 2px solid var(--brand-primary-light);
    padding: 0.875rem 0.75rem !important;
}

.datagrid-group-action-title {
    font-weight: 700;
    font-size: 0.75rem;
    color: var(--brand-primary-dark);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.row-group-actions .input-group {
    gap: 0.375rem;
}

.row-group-actions .form-select,
.row-group-actions .form-control {
    font-size: 0.8125rem;
    border-radius: var(--brand-radius);
}

.row-group-actions .btn-outline-secondary {
    border-color: var(--brand-primary) !important;
    color: var(--brand-primary) !important;
    font-weight: 600;
    font-size: 0.8125rem;
}

.row-group-actions .btn-outline-secondary:hover {
    background-color: var(--brand-primary) !important;
    color: #fff !important;
}

/* DataGrid pagination bar */
.row-grid-bottom {
    padding: 1rem 0;
    align-items: center;
}

.reset-filter {
    font-size: 0.8rem;
    border-radius: var(--brand-radius);
}

/* DataGrid inline edit/add */
.datagrid-inline-edit input,
.datagrid-inline-edit select {
    border-radius: var(--brand-radius);
    font-size: 0.8125rem;
}

/* Inline edit trigger (tuzka) - pretizeni vendor stylu */
.datagrid a.datagrid-inline-edit-trigger,
.datagrid a.datagrid-inline-edit-trigger.btn,
.datagrid a.datagrid-inline-edit-trigger.btn.btn-xs,
.datagrid a.datagrid-inline-edit-trigger.btn.btn-default,
.datagrid a.datagrid-inline-edit-trigger.btn.btn-secondary,
a.btn.btn-xs.btn-default.btn-secondary.datagrid-inline-edit-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.8125rem !important;
    border-radius: var(--brand-radius) !important;
    background-color: rgba(108, 117, 125, 0.1) !important;
    background-image: none !important;
    color: #6c757d !important;
    border: none !important;
    box-shadow: none !important;
    transition: var(--brand-transition);
}

.datagrid a.datagrid-inline-edit-trigger:hover,
a.btn.btn-xs.btn-default.btn-secondary.datagrid-inline-edit-trigger:hover {
    background-color: rgba(108, 117, 125, 0.2) !important;
    color: #495057 !important;
}

/* Inline add trigger (plus) */
.datagrid a.datagrid-inline-add-trigger,
a.btn.datagrid-inline-add-trigger {
    display: inline-flex !important;
    align-items: center !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.8125rem !important;
    border-radius: var(--brand-radius) !important;
    background-color: rgba(25, 135, 84, 0.1) !important;
    background-image: none !important;
    color: #198754 !important;
    border: none !important;
    box-shadow: none !important;
    transition: var(--brand-transition);
}

.datagrid a.datagrid-inline-add-trigger:hover,
a.btn.datagrid-inline-add-trigger:hover {
    background-color: rgba(25, 135, 84, 0.2) !important;
    color: #146c43 !important;
}

/* Settings dropdown (ozubene kolo) */
.datagrid .datagrid-settings .btn.btn-default.btn-secondary,
.datagrid-settings .btn.dropdown-toggle {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.8125rem !important;
    border-radius: var(--brand-radius) !important;
    background-color: rgba(108, 117, 125, 0.1) !important;
    background-image: none !important;
    color: #6c757d !important;
    border: 1px solid var(--brand-border) !important;
    box-shadow: none !important;
}

.datagrid .datagrid-settings .btn.btn-default.btn-secondary:hover,
.datagrid-settings .btn.dropdown-toggle:hover {
    background-color: rgba(108, 117, 125, 0.2) !important;
}

/* --- Soft backgrounds --- */
.bg-soft-primary {
    background-color: var(--brand-primary-soft) !important;
}

.bg-primary {
    background-color: var(--brand-primary) !important;
    color: #fff !important;
}

.bg-soft-baker {
    background-color: var(--brand-accent);
}

.text-baker {
    --vz-text-opacity: 1;
    color: #A0522D !important;
}

.alert-baker {
    --vz-alert-color: #8B5E3C;
    --vz-alert-bg: #FDF5E6;
    --vz-alert-border-color: var(--brand-accent);
}

/* --- Profil --- */
.profile-wid-bg::before {
    background: var(--brand-primary) !important;
}

/* --- Avatar --- */
.avatar-title {
    border-radius: var(--brand-radius);
}

/* --- Login --- */
.bg-overlay {
    background-color: #ebe2d1 !important;
}

.auth-one-bg {
    background-image: url(/assets/front/img/about-2.jpg);
}

/* --- Oblibene (srdce) --- */
.favorite {
    color: #ef4444;
    transition: var(--brand-transition);
}

.not-favorite {
    color: #d1d5db;
    transition: var(--brand-transition);
}

.favorite:hover {
    color: #f87171;
    transform: scale(1.15);
}

.not-favorite:hover {
    color: #9ca3af;
    transform: scale(1.15);
}

/* --- Odkazy v kartach --- */
a.card-title {
    color: var(--brand-text) !important;
    font-weight: 600;
}

a.card-title:hover {
    color: var(--brand-primary) !important;
}

/* --- Titulek stranky --- */
.page-title {
    color: var(--brand-text);
    font-weight: 700;
}

.page-title-box {
    padding-bottom: 1rem;
}

.custom-page-link {
    color: var(--brand-secondary) !important;
    text-decoration: none;
    transition: var(--brand-transition);
}

.custom-page-link:hover {
    color: var(--brand-primary) !important;
}

/* --- Container shadow --- */
.container-shadow {
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-md);
}

/* --- Chybova hlaska --- */
.error-message {
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    padding: 0.75rem 1rem;
    border-radius: var(--brand-radius);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: 0.875rem;
}

.error-message .icon {
    margin-right: 0.5rem;
    font-size: 1.125rem;
    color: #ef4444;
}

/* --- Password tooltip --- */
.password-tooltip {
    display: none !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    box-shadow: var(--brand-shadow-lg);
    background-color: #fff;
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius);
}

.password-tooltip::before {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 20px;
    border-width: 10px;
    border-style: solid;
    border-color: #fff transparent transparent transparent;
}

.password-tooltip.show {
    display: block !important;
    animation: fadeInUp 0.25s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Filter container --- */
.filter-container {
    background-color: #fff;
    border: 1px solid var(--brand-border);
    padding: 1.25rem;
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow);
}

.filter-container .filter-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-text);
    margin-bottom: 1rem;
}

.filter-container .form-check-label {
    color: var(--brand-text);
    font-size: 0.8125rem;
}

/* --- Search --- */
.search-icon {
    top: 50% !important;
}

/* --- Checkout --- */
a.checkout.active {
    background-color: var(--brand-primary-soft) !important;
}

.card-radio .form-check-input:checked + .form-check-label {
    border-color: var(--brand-primary) !important;
}

.card-radio .form-check-input:checked + .form-check-label:before {
    color: var(--brand-primary) !important;
}

/* --- Free shipping --- */
.free-shipping-section {
    background-color: #fef7ed;
    border: 2px dashed var(--brand-accent);
    padding: 1.25rem;
    border-radius: var(--brand-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-top: 1.25rem;
    margin-bottom: 0;
}

.free-shipping-section h5 {
    color: #A0522D;
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 0.5rem;
}

.free-shipping-section p {
    color: #8B5E3C;
    font-size: 0.875rem;
}

.free-shipping-section .cta-button {
    color: #fff;
    background-color: var(--brand-accent);
    border: none;
    padding: 0.5rem 1rem;
    border-radius: var(--brand-radius);
    cursor: pointer;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    margin-top: 0.75rem;
    display: inline-block;
    transition: var(--brand-transition);
}

.free-shipping-section .cta-button:hover {
    background-color: #A0522D;
    color: #fff !important;
    transform: translateY(-1px);
}

.free-shipping-section-achieved {
    background-color: #f0fdf4;
    border: 2px solid #22c55e;
    padding: 1.25rem;
    border-radius: var(--brand-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-top: 1.25rem;
}

.free-shipping-section-achieved h5,
.free-shipping-section-achieved p {
    color: #16a34a;
}

/* --- Sticky footer --- */
.main-content {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.page-content {
    flex: 1;
}

.footer {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100%;
    border-top: 1px solid var(--brand-border);
    background-color: var(--brand-card-bg);
}

/* --- Responzivita --- */
@media (max-width: 768px) {
    .password-tooltip {
        width: 90%;
        left: 5%;
        top: -100px;
    }

    .password-tooltip::before {
        left: 50%;
        transform: translateX(-50%);
    }

    .card-body {
        padding: 1rem;
    }

    .datagrid .table tbody td,
    .datagrid .table thead th {
        padding: 0.5rem;
        font-size: 0.75rem;
    }
}

/* --- Animace pro elementy --- */
.card,
.btn,
.nav-link,
.form-control,
.form-select {
    transition: var(--brand-transition);
}

/* --- Topbar --- */
.topbar-user .user-name-text {
    font-weight: 600;
    font-size: 0.875rem;
}

.topbar-user .user-name-sub-text {
    font-size: 0.75rem;
    color: var(--brand-muted);
}

/* --- Breadcrumbs --- */
.page-title-box {
    border-bottom: none;
}

/* --- Scroll to top --- */
#back-to-top {
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Taby v editaci produktu --- */
.nav-tabs-custom .nav-link {
    font-weight: 500;
    font-size: 0.875rem;
    color: var(--brand-muted);
    padding: 0.75rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.nav-tabs-custom .nav-link:hover {
    color: var(--brand-primary) !important;
}

.nav-tabs-custom .nav-link.active {
    color: var(--brand-primary) !important;
    font-weight: 600;
}

.nav-tabs-custom .nav-link i {
    font-size: 1rem;
}

/* Karty v editaci - vizualni skupiny */
.col-lg-8 > .card {
    margin-bottom: 1.25rem;
}

.col-lg-8 > .card > .card-header h5 {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-text);
    display: flex;
    align-items: center;
}

.col-lg-8 > .card > .card-header h5 i {
    color: var(--brand-primary);
    font-size: 1.1rem;
}

/* Pravy panel - status karta zvyraznena */
.border-primary.border-opacity-25 {
    border-color: var(--brand-primary) !important;
}

.bg-primary.bg-opacity-10 {
    background-color: var(--brand-primary-soft) !important;
}

/* Tlacitko ulozit - full width, vetsi */
.d-grid .btn-success.btn-lg {
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0.75rem;
}

/* --- Dashed border card (pridat novou adresu) --- */
.card.border-dashed {
    border: 2px dashed var(--brand-border);
    background-color: transparent;
}

.card.border-dashed .card-header {
    background-color: transparent;
}

/* --- Order detail popup --- */
.order__detail {
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04);
    background: #fff;
    border-radius: 0.75rem;
    border: 1px solid #e9ebec;
    padding: 1.25rem;
    color: #495057;
    width: 100%;
    max-width: 650px;
    z-index: 9999;
    position: relative;
}

.order__trigger {
    cursor: pointer;
}

/* --- Empty state (no items) --- */
.noresult {
    padding: 2rem;
}

.noresult h5 {
    color: var(--brand-text);
    font-weight: 600;
}

.noresult .text-muted a {
    color: var(--brand-primary) !important;
    font-weight: 500;
}
