/* assets/style.css â€” Simple, compatible, no fancy stuff */
:root {
    --bg: #0f172a;
    --card: #111827;
    --muted: #9ca3af;
    --accent: #22bdc5;
    --danger: #ef4444;
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, "Helvetica Neue", Arial;
    background: #090A0C;
    color: #e5e7eb
}

a {
    color: #ffffff;
    text-decoration: none;
    transition: 0.4s;
}

a:hover {
    color: #ffffff;
    transition: 0.4s;
    text-shadow: 0 0 14px #b4a6ff52;
}

nav a {
    text-decoration: none;
    color: #fff;
    margin-left: 20px;
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px 9px;
    background: #0D0E12;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .06);
    position: sticky;
    top: 0
}

.brand {
    font-weight: 300;
    font-size: 14px;
    display: flex;
    flex-direction: row;
    align-content: flex-end;
    align-items: flex-end;
    gap: 2px;
}

.container {
    max-width: 1100px;
    margin: 24px auto;
    padding: 0 16px
}

.auth-card {
    max-width: 420px;
    margin: 64px auto;
    background: #16181D;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    padding: 24px
}

h1,
h3 {
    margin: 0 0 12px;
    font-weight: 400;
}

label {
    display: block;
    font-size: 14px;
    margin: 12px 0
}

input,
select,
textarea {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: #131418;
    color: #e5e7eb
}

.btn {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 0;
    background: #ffffff;
    color: #052e16;
    font-weight: 700;
    transition: 0.4s;
    cursor: pointer transform: translate(0px, 0px);
}

.btn:hover,
.icon-btn:hover {
    transition: 0.4s;
    box-shadow: 0 0 14px #b4a6ff52;
    transform: translate(0, -2px);
    cursor: pointer
}


.icon-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    padding: 6px 10px;
    cursor: pointer;
    color: #fff;
    transform: translate(0px, 0px);

    transition: 0.4s;

}

.alert {
    margin: 8px 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(239, 68, 68, .15);
    border: 1px solid rgba(239, 68, 68, .3);
    color: #fecaca
}

.success {
    margin: 8px 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(34, 197, 94, .12);
    border: 1px solid rgba(34, 197, 94, .3);
    color: #bbf7d0
}

.muted {
    color: var(--muted);
    font-size: 13px
}

.footer {
    padding: 24px;
    text-align: center;
    color: #c5c5c5;
}

.table {
    width: 100%;
    border-collapse: collapse;
    background: #0D0E12;
    border: 1px solid rgb(255 32 32 / 97%);
    border-radius: 12px;
    overflow: hidden;
    border-color: #fff;
}

.table th,
.table td {
    padding: 10px;
    border-bottom: 1px solid rgb(255 255 255 / 0%);
    text-align: left;
    font-size: 14px
}

.table th {
    background: rgba(255, 255, 255, .04)
}

/* Tabs */
.tabs {
    margin-top: 16px
}

.tab-headers {
    display: flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0 0 10px
}

.tab-headers li {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    cursor: pointer
}

.tab-headers li.active {
    background: #ffffff;
    color: #052e16;
    border-color: transparent
}

.tab-content {
    display: none
}

.tab-content.active {
    display: block
}

/* Modal */
.modal {
    display: none;
    position: fixed;
    z-index: 10;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .6)
}

.modal .modal-content {
    background: #0c0e10;
    margin: 10% auto;
    scrollbar-color: #2c2c2c transparent;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .12);
    width: 95%;
    max-height: 500px;
    overflow-y: scroll;
    max-width: 520px;
    border-radius: 12px;
    position: relative
}

.modal .close {
    position: absolute;
    right: 12px;
    top: 8px;
    font-size: 20px;
    cursor: pointer
}

.detail-body p {
    margin: 6px 0
}

.detail-body code {
    background: #26282d;
    padding: 2px 6px;
    border-radius: 6px
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.form-grid textarea {
    grid-column: 1 / span 2
}

img.header-logo {
    width: 96px;
    bottom: 0;
}

/* Barre de recherche par onglet */
.table-search {
    margin: 8px 0 12px
}

.table-search input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: #0D0E12;
    color: #e5e7eb;
    outline: none;
}

.table-search input:focus {
    border-color: rgba(34, 197, 94, .45);
    box-shadow: 0 0 0 2px rgba(34, 197, 94, .15);
}

#editDelete,
#editSave {
    height: -webkit-fill-available;
    margin: 0;
}

input[type="checkbox"] {
    width: 14px;
}

.badges {
    display: inline-flex;
    gap: 6px;
    margin-left: 8px;
    vertical-align: middle
}

.badge {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .1);
    background: rgba(255, 255, 255, .06)
}

.badge-front {
    background: rgba(34, 197, 94, .15);
    border-color: rgba(34, 197, 94, .35);
    color: #86efac
}

/* vert */
.badge-back {
    background: rgba(59, 130, 246, .15);
    border-color: rgba(59, 130, 246, .35);
    color: #93c5fd
}

/* bleu */
.badge-ftp {
    background: rgba(168, 85, 247, .15);
    border-color: rgba(168, 85, 247, .35);
    color: #d8b4fe
}

/* violet */
.badge-db {
    background: rgba(251, 146, 60, .15);
    border-color: rgba(251, 146, 60, .35);
    color: #fdba74
}

/* orange */

#detailBody .section {
    padding: 10px;
    background: #ffffff09;
    margin-bottom: 15px;
    border-radius: 10px;
}

#detailBody .section h4 {
    margin-top: 0;
}

/* Filtres tags au-dessus du tableau */
.table-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 6px 0 12px
}

.filter-tag {
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .18);
    background: transparent;
    color: #e5e7eb;
    cursor: pointer;
    transition: all .15s ease;
}

.filter-tag:hover {
    transform: translateY(-1px)
}

/* Ã‰tat actif, couleurs par type */
.filter-tag.active {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .06) inset
}

.filter-tag[data-key="front"].active {
    background: rgba(34, 197, 94, .15);
    border-color: rgba(34, 197, 94, .35);
    color: #86efac
}

.filter-tag[data-key="back"].active {
    background: rgba(59, 130, 246, .15);
    border-color: rgba(59, 130, 246, .35);
    color: #93c5fd
}

.filter-tag[data-key="ftp"].active {
    background: rgba(168, 85, 247, .15);
    border-color: rgba(168, 85, 247, .35);
    color: #d8b4fe
}

.filter-tag[data-key="db"].active {
    background: rgba(251, 146, 60, .15);
    border-color: rgba(251, 146, 60, .35);
    color: #fdba74
}

#editModal .modal-content,
#detailModal .modal-content {
    max-height: 60vh;
    overflow-y: scroll;
    scrollbar-color: #ffffff29 transparent;
}

.copy-toast {
    position: fixed;
    right: 16px;
    bottom: 16px;
    background: rgba(34, 197, 94, .95);
    color: #052e16;
    border: 1px solid rgba(34, 197, 94, .6);
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 700;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
    z-index: 9999;
}

.copy-toast.error {
    background: rgba(239, 68, 68, .95);
    color: #fee2e2;
    border-color: rgba(239, 68, 68, .6);
}

.table-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 6px 0 12px
}

.filter-tag {
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .18);
    background: transparent;
    color: #e5e7eb;
    cursor: pointer
}

.filter-tag.active {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .06) inset
}

.filter-tag.add-filter {
    border-style: dashed;
    opacity: .8
}

.tags-select .tag-opt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    padding: 6px 10px
}

.tags-select .tag-opt input {
    accent-color: #22c55e
}

button.filter-tag.active {
    transform: translate(0, -2px);
    filter: brightness(1.3);
    box-shadow: 0px 0px 7px 0px #ffffff38;

}
.ms { position:relative; display:inline-block; }
.ms-btn { border:1px solid rgba(255,255,255,.2); padding:8px 10px; border-radius:8px; }
.ms-panel { position:absolute; top:100%; left:0; min-width:260px; max-height:240px; overflow:auto;
  border:1px solid rgba(255,255,255,.15); border-radius:8px; padding:8px; display:none; background:#0f172a; z-index:40;}
.ms.open .ms-panel{ display:block; }
.ms-opt { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:6px; margin:4px 0; }
.ms-opt input{ accent-color:#22c55e; }

.sec-wrap .sec{ border:1px solid rgba(255,255,255,.15); border-radius:10px; padding:10px; margin-bottom:10px; }
.sec-header{ display:flex; gap:8px; align-items:center; margin-bottom:8px; }
.sec-title{ flex:1; }
.sec-del{ border:1px solid rgba(239,68,68,.4); color:#fecaca; background:transparent; padding:6px 10px; border-radius:8px; }
.form-grid.compact label{ margin-bottom:6px; }

button.icon-btn.remove-section {
    padding: 16px 12px;
    height: 34px;
    display: flex
;
    align-content: center;
    justify-content: center;
    align-items: center;
}

@media (max-width:700px) {
    .form-grid {
        grid-template-columns: 1fr
    }
}

/* =========================
   VERSION MOBILE (â‰¤ 640px)
   ========================= */
@media (max-width: 640px) {

    /* Layout global */
    .container {
        padding: 0 12px;
    }

    .topbar {
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px 12px;
    }

    .topbar .brand {
        font-size: 16px;
    }

    .topbar nav {
        width: 100%;
        display: flex;
        gap: 8px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 4px;
    }

    .topbar nav a {
        white-space: nowrap;
        font-size: 14px;
        padding: 6px 8px;
        border: 1px solid rgba(255, 255, 255, .08);
        border-radius: 8px;
    }

    /* Formulaires */
    .auth-card {
        margin: 24px auto;
        padding: 16px;
    }

    label {
        font-size: 13px;
        margin: 10px 0;
    }

    input,
    select,
    textarea {
        padding: 10px 12px;
        font-size: 14px;
    }

    .btn,
    .icon-btn {
        padding: 10px 12px;
        font-size: 14px;
        border-radius: 10px;

    }




    .form-grid {
        grid-template-columns: 1fr !important;
        gap: 10px;
    }

    /* Recherche + filtres */
    .table-search {
        margin: 6px 0 8px;
    }

    .table-filters {
        gap: 6px;
        margin: 4px 0 10px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .filter-tag {
        padding: 6px 10px;
        font-size: 13px;
    }

    /* Onglets */
    .tabs {
        margin-top: 10px;
    }

    .tab-headers {
        gap: 6px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        padding-bottom: 4px;
    }

    .tab-headers li {
        display: inline-block;
        padding: 8px 10px;
        font-size: 13px;
    }

    /* Table -> cartes empilÃ©es */
    .table {
        border: 0;
        background: transparent;
    }

    .table thead {
        display: none;
    }

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

    .table tr {
        background: #111827;
        border: 1px solid rgba(255, 255, 255, .08);
        border-radius: 12px;
        padding: 8px 10px;
        margin: 0 0 10px 0;
    }

    .table td {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 8px;
        padding: 8px 0;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
        font-size: 14px;
    }

    .table td:last-child {
        border-bottom: 0;
    }

    /* Ã‰tiquettes automatiques pour les lignes (ordre par dÃ©faut) */
    .table td:nth-child(1)::before {
        content: 'Plateforme';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    .table td:nth-child(2)::before {
        content: 'URL';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    .table td:nth-child(3)::before {
        content: 'Identifiant';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    .table td:nth-child(4)::before {
        content: 'Voir';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    /* Si colonnes admin prÃ©sentes */
    .table td:nth-child(5)::before {
        content: 'Modifier';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    .table td:nth-child(6)::before {
        content: 'Supprimer';
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    /* AmÃ©liorer lâ€™alignement des cellules actions */
    .table td .icon-btn {
        padding: 8px 10px;
        font-size: 14px;
    }

    .table td a {
        overflow-wrap: anywhere;
    }

    /* Badges sous le titre de plateforme */
    .badges {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin: 6px 0 0 0;
    }

    /* Modales plein Ã©cran mobile */
    .modal .modal-content {
        width: 100%;
        max-width: none;
        height: 100vh;
        margin: 0;
        border-radius: 0;
        padding: 16px 14px;
    }

    .modal .close {
        right: 10px;
        top: 8px;
    }

    /* Sections de dÃ©tails en modal */
    .detail-body .section {
        margin-top: 8px;
        padding-top: 6px;
    }

    .detail-body .section h4 {
        font-size: 13px;
        margin: 4px 0;
    }

    .kv {
        gap: 6px;
    }

    .kv strong {
        min-width: 120px;
        font-size: 12px;
    }

    /* Toast copie */
    .copy-toast {
        left: 50%;
        right: auto;
        bottom: 12px;
        transform: translateX(-50%);
        padding: 8px 12px;
        font-size: 13px;
    }
}