﻿:root {
    --app-bg: #f3f6fb;
    --app-surface: #ffffff;
    --app-surface-soft: #f8fbff;
    --app-border: #e5edf6;
    --app-text: #243447;
    --app-muted: #72839a;
    --app-primary: #2563eb;
    --app-primary-2: #0ea5e9;
    --app-success: #10b981;
    --app-warning: #f59e0b;
    --app-danger: #f97316;
    --app-violet: #7c3aed;
}

.serdipay-telecom-picker {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(4, minmax(90px, 1fr));
    margin-bottom: .55rem;
}

.serdipay-telecom-option {
    align-items: center;
    background: #fff;
    border: 1px solid #d9e2ec;
    border-radius: 8px;
    color: #1f2937;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    font-size: .78rem;
    font-weight: 700;
    gap: .35rem;
    min-height: 82px;
    padding: .55rem;
    text-align: center;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.serdipay-telecom-option:hover,
.serdipay-telecom-option:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
    outline: none;
}

.serdipay-telecom-option.is-selected {
    border-color: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .14);
}

.serdipay-telecom-logo-wrap {
    align-items: center;
    display: flex;
    height: 34px;
    justify-content: center;
    width: 100%;
}

.serdipay-telecom-logo-wrap img {
    max-height: 34px;
    max-width: 78px;
    object-fit: contain;
}

.serdipay-telecom-label {
    line-height: 1.15;
}

@media (max-width: 575.98px) {
    .serdipay-telecom-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.app-user-avatar {
    aspect-ratio: 1 / 1;
    background: #f8fafc;
    border: 1px solid rgba(255, 255, 255, .7);
    display: block;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    font-weight: 700;
    object-fit: cover;
    object-position: center;
    overflow: hidden;
}

.user-panel .image {
    align-items: center;
    display: flex;
    min-height: 42px;
}

.app-form-card {
    border-radius: 14px;
    overflow: hidden;
}

.app-form-card .card-body,
.app-form-card .card-footer,
.app-form-card .card-header {
    padding-left: 1.1rem !important;
    padding-right: 1.1rem !important;
}

.app-form-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--app-text);
}

.app-form-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 0.85rem 0.9rem;
}

.app-form-group {
    grid-column: span 12;
    margin-bottom: 0;
}

.app-form-group-full {
    grid-column: 1 / -1;
}

.app-form-group-compact,
.app-form-group-medium {
    grid-column: span 6;
}

.app-form-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: #5b6b80;
}

.app-form-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.app-form-actions-primary,
.app-form-actions-secondary {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.app-form-actions-secondary {
    flex: 1 1 auto;
}

.app-form-actions .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    margin: 0 !important;
    min-height: 38px;
}

.sticky-form-actions,
.app-sticky-form-actions {
    scroll-margin-bottom: calc(96px + env(safe-area-inset-bottom));
}

.content-wrapper form:has(.sticky-form-actions),
.content-wrapper form:has(.app-sticky-form-actions) {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
}

.content-wrapper .app-global-form.has-sticky-actions {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
}

.app-input,
.form-control.form-select,
.app-textarea,
.app-input-file {
    min-height: 42px;
    border: 1px solid #dbe5f0;
    border-radius: 0.85rem;
    background: #fbfdff;
    box-shadow: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.app-textarea {
    min-height: 96px;
    padding-top: 0.75rem;
}

.app-input:focus,
.form-control.form-select:focus,
.app-textarea:focus,
.app-input-file:focus {
    border-color: var(--app-primary-2);
    background: #ffffff;
    box-shadow: 0 0 0 0.24rem rgba(14, 165, 233, 0.14);
}

.app-check-wrap {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 42px;
    padding: 0.65rem 0.85rem;
    border: 1px solid #dbe5f0;
    border-radius: 0.85rem;
    background: #fbfdff;
}

.app-check-wrap .form-check-input {
    position: static;
    margin: 0;
    width: auto;
}

.app-btn-primary {
    border: none;
    border-radius: 0.9rem;
    background: var(--app-primary);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.14);
}

.app-btn-primary:hover,
.app-btn-primary:focus {
    background: #1d4ed8;
}

.app-formset-table th {
    font-size: 0.84rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #7b8ca2;
    background: #f7faff;
}

.app-formset-table td {
    vertical-align: top;
}

.invalid-feedback {
    font-size: 0.82rem;
}

.app-optional-block {
    border: 1px dashed #cfd9e6;
    border-radius: 0.9rem;
    padding: 0.9rem 1rem;
    background: #f8fafc;
}

.app-optional-block summary {
    cursor: pointer;
    font-weight: 600;
    color: #334155;
    outline: none;
}

.rk-cell-ellipsis {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.content-wrapper > .content > .container-fluid {
    padding-top: 1rem;
}

.content-wrapper,
.content-wrapper .card,
.content-wrapper .btn,
.content-wrapper .form-control,
.content-wrapper .table,
.content-wrapper .select2-container,
.content-wrapper .dropdown-menu {
    font-family: "Poppins", "Segoe UI", Arial, sans-serif;
}

.content-wrapper .card .card-tools {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.content-wrapper .card .card-tools .btn {
    margin: 0;
}

.rk-mobile-filter-toggle {
    align-items: center;
    display: none;
    font-weight: 800;
    gap: .45rem;
    justify-content: center;
    margin-bottom: .85rem;
    min-height: 42px;
    width: 100%;
}

.rk-mobile-filter-form .form-group {
    margin-bottom: .75rem;
}

.rk-mobile-filter-form .form-control,
.rk-mobile-filter-form .select2-container--default .select2-selection--single {
    min-height: 42px;
}

.rk-mobile-filter-form.row,
.rk-mobile-filter-form.form-row,
.rk-mobile-filter-form.form-inline {
    row-gap: .75rem;
}

.rk-mobile-filter-form .btn[type="submit"],
.rk-mobile-filter-form button[type="submit"] {
    min-height: 42px;
}

@media (max-width: 768px) {
    .table-responsive,
    .dataTables_wrapper,
    .rk-table-shell,
    .rk-auto-table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table-responsive table,
    .rk-table-shell table,
    .rk-auto-table-responsive table,
    table.dataTable {
        min-width: 760px;
        font-size: .78rem;
    }

    table.dataTable th,
    table.dataTable td,
    .table th,
    .table td {
        padding: .62rem .65rem;
        white-space: nowrap;
        vertical-align: middle;
    }

    .table .btn,
    table.dataTable .btn,
    .dt-buttons .btn,
    .dt-button {
        min-height: 34px;
        padding: .34rem .55rem;
        font-size: .76rem;
        border-radius: 8px;
    }

    .content-wrapper > .content > .container-fluid {
        padding-top: 1.1rem;
    }

    .content-wrapper .card {
        border-radius: 8px;
    }

    .content-wrapper .card-header {
        padding: 1rem .95rem .85rem;
    }

    .content-wrapper .card-title {
        font-size: 1.02rem;
        font-weight: 800;
        line-height: 1.25;
    }

    .content-wrapper .card-tools {
        gap: .5rem;
        justify-content: flex-start;
        margin-top: .55rem;
        width: 100%;
    }

    .content-wrapper .card-tools .btn {
        flex: 1 1 calc(50% - .5rem);
        font-size: .78rem;
        min-height: 38px;
        padding: .4rem .55rem;
        white-space: normal;
    }

    .rk-mobile-filter-toggle {
        display: inline-flex;
    }

    .rk-mobile-filter-form.rk-mobile-filter-collapsed {
        display: none !important;
    }

    .rk-mobile-filter-form.rk-mobile-filter-open.row,
    .rk-mobile-filter-form.rk-mobile-filter-open.form-row,
    .rk-mobile-filter-form.rk-mobile-filter-open.form-inline {
        display: flex;
    }

    .rk-mobile-filter-form.rk-mobile-filter-open {
        margin-top: .85rem;
    }

    .rk-mobile-filter-form .form-control,
    .rk-mobile-filter-form .btn,
    .rk-mobile-filter-form button {
        font-size: .92rem;
        min-height: 44px;
    }

    .table td .btn + .btn,
    .table td form.d-inline + .btn,
    .table td .btn + form.d-inline,
    .table td .btn + a.btn,
    .table td a.btn + .btn {
        margin-left: .2rem;
        margin-top: .2rem;
    }

    .rk-cell-ellipsis {
        max-width: 150px;
    }

    .quick-sale-prestations-grid,
    .prestation-quick-sale-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .quick-sale-prestation-card,
    .prestation-card {
        padding: 8px;
        border-radius: 12px;
    }

    .quick-sale-prestation-card h3,
    .prestation-card h3 {
        font-size: .78rem;
        line-height: 1.25;
    }
}

@media (min-width: 576px) {
    .app-form-group {
        grid-column: span 6;
    }
}

@media (min-width: 992px) {
    .app-form-group {
        grid-column: span 4;
    }

    .app-form-group-medium {
        grid-column: span 6;
    }

    .app-form-group-compact {
        grid-column: span 3;
    }
}

@media (max-width: 575.98px) {
    .app-form-card .card-body,
    .app-form-card .card-footer,
    .app-form-card .card-header {
        padding-left: 0.9rem !important;
        padding-right: 0.9rem !important;
    }

    .app-form-grid {
        gap: 0.7rem;
    }

    .app-form-title {
        font-size: 1.02rem;
    }

    .app-input,
    .form-control.form-select,
    .app-textarea,
    .app-input-file {
        min-height: 40px;
    }

    .app-textarea {
        min-height: 88px;
    }
}

@media (max-width: 359.98px) {
    .app-form-group-compact,
    .app-form-group-medium {
        grid-column: span 12;
    }
}

.rk-table-shell,
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.rk-actions,
.table td .btn + .btn,
.table td form.d-inline + .btn,
.table td .btn + form.d-inline {
    margin-top: .25rem;
}

.rk-amount,
.rk-number,
td[data-label*="Prix"],
td[data-label*="Stock"],
td[data-label*="Montant"],
td[data-label*="Dette"],
td[data-label*="Solde"],
td[data-label*="Quantite"] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rk-mobile-table {
    width: 100%;
}

.rk-mobile-table thead th {
    white-space: nowrap;
}

.rk-mobile-table td,
.rk-mobile-table th {
    vertical-align: middle;
}

/*
Commande vocale hors RK Chat en pause temporaire: panneau et alertes de saisie vocale.
.rk-voice-panel {
    align-items: center;
    background: #f8fbff;
    border: 1px solid #dbe7f5;
    border-radius: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-bottom: 1rem;
    padding: .85rem;
    position: relative;
    z-index: 1;
}

.rk-voice-panel strong {
    color: var(--app-text);
    display: block;
    font-size: .9rem;
}

.rk-voice-panel span {
    color: var(--app-muted);
    display: block;
    font-size: .8rem;
}

.rk-voice-panel button {
    margin-left: auto;
}

.content-wrapper .alert.show ~ form .rk-voice-panel,
.content-wrapper .alert.show ~ .card form .rk-voice-panel,
.content-wrapper .alert.show ~ * .rk-voice-panel,
.main-header.show-notification ~ .content-wrapper .rk-voice-panel,
body.rk-header-notification-open .rk-voice-panel {
    display: none !important;
}
*/

.main-header,
.main-header .navbar-nav,
.main-header .dropdown-menu,
.app-header-actions {
    z-index: 1040;
}

@media (max-width: 575.98px) {
    .rk-card-list-mobile thead {
        display: table-header-group;
    }

    .rk-card-list-mobile,
    .rk-card-list-mobile tbody,
    .rk-card-list-mobile tr,
    .rk-card-list-mobile td {
        display: revert;
        width: auto !important;
    }

    .rk-card-list-mobile tr {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        margin: 0;
    }

    .rk-card-list-mobile td {
        border-top: 1px solid #eef2f7;
        display: table-cell;
        padding: .38rem .5rem;
        text-align: inherit;
        white-space: nowrap;
    }

    .rk-card-list-mobile td:first-child {
        border-top: 1px solid #eef2f7;
    }

    .rk-card-list-mobile td::before {
        content: none;
    }

    .rk-card-list-mobile td[data-label="Actions"],
    .rk-card-list-mobile td[data-label="Action"] {
        display: table-cell;
        text-align: right;
    }

    .rk-card-list-mobile td[data-label="Actions"]::before,
    .rk-card-list-mobile td[data-label="Action"]::before {
        display: none;
    }

    .rk-card-list-mobile td[data-label="Actions"] .btn,
    .rk-card-list-mobile td[data-label="Actions"] form,
    .rk-card-list-mobile td[data-label="Action"] .btn,
    .rk-card-list-mobile td[data-label="Action"] form {
        margin-bottom: 0;
        width: auto;
    }

    /*
    Commande vocale hors RK Chat en pause temporaire: responsive du panneau vocal.
    .rk-voice-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .rk-voice-panel button {
        margin-left: 0;
        width: 100%;
    }
    */
}


