/* ================================================================
   GarageDash Core — Système de Design
   Version 1.0.0
   ================================================================ */

:root{
  --gdc-primaire:#2563EB; --gdc-primaire-fonce:#1D4ED8; --gdc-primaire-clair:#EFF6FF;
  --gdc-succes:#059669;   --gdc-succes-lt:#ECFDF5;
  --gdc-attention:#D97706;--gdc-attention-lt:#FFFBEB;
  --gdc-danger:#DC2626;   --gdc-danger-lt:#FEF2F2;
  --gdc-info:#0891B2;     --gdc-info-lt:#F0F9FF;
  --gdc-violet:#7C3AED;
  --gdc-sidebar:#0F172A;  --gdc-sidebar-larg:262px;
  --gdc-topbar-h:62px;
  --gdc-texte:#1E293B;    --gdc-muted:#64748B; --gdc-bordure:#E2E8F0;
  --gdc-bg:#F1F5F9;       --gdc-carte:#FFFFFF;
  --gdc-rayon:10px;
  --gdc-ombre:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
  --gdc-ombre-md:0 4px 14px rgba(0,0,0,.09);
  --gdc-tr:.18s ease;
  --gdc-police:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;
}
.gdc-app,.gdc-connexion-page{font-family:var(--gdc-police);font-size:14px;color:var(--gdc-texte);line-height:1.6;-webkit-font-smoothing:antialiased;}
.gdc-app *,.gdc-connexion-page *,.gdc-app *::before,.gdc-app *::after{box-sizing:border-box;}

/* ── MISE EN PAGE ────────────────────────────────────────────── */
.gdc-app{display:flex;min-height:100vh;background:var(--gdc-bg);}
.gdc-sidebar{width:var(--gdc-sidebar-larg);background:var(--gdc-sidebar);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:1000;overflow-y:auto;transition:transform var(--gdc-tr);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;}
.gdc-principal{flex:1;margin-left:var(--gdc-sidebar-larg);display:flex;flex-direction:column;min-height:100vh;}

/* ── MARQUE ──────────────────────────────────────────────────── */
.gdc-marque{display:flex;align-items:center;gap:12px;padding:18px 16px 16px;border-bottom:1px solid rgba(255,255,255,.08);}
.gdc-marque-icone{font-size:28px;}
.gdc-marque-nom{font-size:16px;font-weight:800;color:#fff;letter-spacing:-.3px;line-height:1.2;}
.gdc-marque-slogan{font-size:11px;color:rgba(255,255,255,.4);margin-top:1px;}

/* ── NAVIGATION ──────────────────────────────────────────────── */
.gdc-nav{flex:1;padding:12px 10px;}
.gdc-nav-separateur{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.28);padding:14px 8px 6px;}
.gdc-nav-vide{font-size:12px;color:rgba(255,255,255,.3);padding:10px;font-style:italic;}
.gdc-nav-lien{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:rgba(255,255,255,.62);text-decoration:none;font-weight:500;font-size:13.5px;transition:all var(--gdc-tr);margin-bottom:2px;}
.gdc-nav-lien:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none;}
.gdc-nav-lien.actif{background:var(--accent,var(--gdc-primaire));color:#fff;box-shadow:0 3px 10px rgba(37,99,235,.35);}
.gdc-nav-icone{width:22px;text-align:center;font-size:17px;flex-shrink:0;}

/* ── PIED SIDEBAR ────────────────────────────────────────────── */
.gdc-sidebar-pied{padding:12px 10px;border-top:1px solid rgba(255,255,255,.07);}
.gdc-utilisateur-carte{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;background:rgba(255,255,255,.06);margin-bottom:8px;}
.gdc-avatar{width:36px;height:36px;border-radius:50%;background:var(--gdc-primaire);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0;}
.gdc-util-nom{font-size:13px;font-weight:600;color:#fff;}
.gdc-util-role{font-size:11px;color:rgba(255,255,255,.45);}
.gdc-liens-pied{display:flex;gap:6px;}
.gdc-lien-sm{font-size:12px;padding:5px 10px;border-radius:6px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.6);text-decoration:none;transition:all var(--gdc-tr);flex:1;text-align:center;}
.gdc-lien-sm:hover{background:rgba(255,255,255,.13);color:#fff;text-decoration:none;}
.gdc-lien-danger:hover{background:rgba(220,38,38,.25);color:#FCA5A5;}

/* ── BARRE SUPÉRIEURE ────────────────────────────────────────── */
.gdc-topbar{height:var(--gdc-topbar-h);background:#fff;border-bottom:1px solid var(--gdc-bordure);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:100;box-shadow:var(--gdc-ombre);}
.gdc-menu-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--gdc-muted);padding:4px 8px;border-radius:6px;display:none;line-height:1;}
.gdc-topbar-titre{flex:1;font-size:17px;font-weight:700;}
.gdc-topbar-droite{display:flex;align-items:center;gap:12px;}
.gdc-topbar-date{font-size:12px;color:var(--gdc-muted);}

/* ── CONTENU ─────────────────────────────────────────────────── */
.gdc-contenu{flex:1;padding:26px 28px;overflow-x:hidden;}

/* ── NOTIFICATIONS ───────────────────────────────────────────── */
.gdc-notif{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;font-size:13.5px;}
.gdc-notif button{background:none;border:none;cursor:pointer;font-size:15px;opacity:.6;}
.gdc-notif-success{background:var(--gdc-succes-lt);color:var(--gdc-succes);border:1px solid rgba(5,150,105,.2);}
.gdc-notif-danger {background:var(--gdc-danger-lt); color:var(--gdc-danger); border:1px solid rgba(220,38,38,.2);}
.gdc-notif-warning{background:var(--gdc-attention-lt);color:var(--gdc-attention);border:1px solid rgba(217,119,6,.2);}

/* ── CARTES ──────────────────────────────────────────────────── */
.gdc-carte{background:var(--gdc-carte);border-radius:var(--gdc-rayon);box-shadow:var(--gdc-ombre);border:1px solid var(--gdc-bordure);overflow:hidden;}
.gdc-carte-en-tete{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--gdc-bordure);}
.gdc-carte-en-tete h3{margin:0;font-size:15px;font-weight:700;}
.gdc-carte-corps{padding:20px;}
.gdc-p0{padding:0!important;}

/* ── CARTES STATISTIQUES ─────────────────────────────────────── */
.gdc-stat-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;}
.gdc-stat-carte{background:linear-gradient(135deg,var(--coul),color-mix(in srgb,var(--coul) 55%,#93C5FD));color:#fff;border-radius:var(--gdc-rayon);padding:20px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--gdc-ombre-md);}
.gdc-stat-num{font-size:28px;font-weight:800;line-height:1;}
.gdc-stat-lbl{font-size:12px;opacity:.85;margin-top:4px;}
.gdc-stat-icone{font-size:36px;opacity:.55;}

/* ── GRILLES ─────────────────────────────────────────────────── */
.gdc-widget-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px;}
.gdc-tuiles-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px;}
.gdc-tuile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:10px;background:var(--gdc-bg);border:1.5px solid var(--gdc-bordure);text-decoration:none;color:var(--gdc-texte);transition:all var(--gdc-tr);}
.gdc-tuile:hover{border-color:var(--coul-tuile);box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px);text-decoration:none;color:var(--gdc-texte);}
.gdc-tuile-icone{font-size:28px;}
.gdc-tuile-lbl{font-size:12px;font-weight:600;text-align:center;}

/* ── EN-TÊTE PAGE ────────────────────────────────────────────── */
.gdc-entete-page{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.gdc-entete-gauche{display:flex;align-items:center;gap:12px;}
.gdc-entete-page h2{margin:0;font-size:20px;font-weight:700;}

/* ── TABLEAUX ────────────────────────────────────────────────── */
.gdc-tableau-wrap{overflow-x:auto;}
.gdc-tableau{width:100%;border-collapse:collapse;font-size:13.5px;}
.gdc-tableau th{background:#F8FAFC;padding:10px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gdc-muted);border-bottom:2px solid var(--gdc-bordure);}
.gdc-tableau td{padding:12px 14px;border-bottom:1px solid var(--gdc-bordure);vertical-align:middle;}
.gdc-tableau tr:last-child td{border-bottom:none;}
.gdc-tableau tr:hover td{background:#F8FAFC;}
.gdc-tableau-actions{white-space:nowrap;}
.gdc-tableau-actions form{display:inline;}

/* ── BADGES ──────────────────────────────────────────────────── */
.gdc-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;}
.badge-success{background:var(--gdc-succes-lt);color:var(--gdc-succes);}
.badge-danger {background:var(--gdc-danger-lt); color:var(--gdc-danger);}
.badge-warning{background:var(--gdc-attention-lt);color:var(--gdc-attention);}
.badge-primary{background:var(--gdc-primaire-clair);color:var(--gdc-primaire);}
.badge-info   {background:var(--gdc-info-lt);color:var(--gdc-info);}
.badge-muted  {background:#F1F5F9;color:var(--gdc-muted);}

/* ── BOUTONS ─────────────────────────────────────────────────── */
.gdc-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:all var(--gdc-tr);white-space:nowrap;font-family:var(--gdc-police);line-height:1.4;}
.gdc-btn:hover{text-decoration:none;}
.gdc-btn-primaire{background:var(--gdc-primaire);color:#fff;border-color:var(--gdc-primaire);}
.gdc-btn-primaire:hover{background:var(--gdc-primaire-fonce);color:#fff;}
.gdc-btn-contour{background:#fff;color:var(--gdc-texte);border-color:var(--gdc-bordure);}
.gdc-btn-contour:hover{background:var(--gdc-bg);}
.gdc-btn-ghost{background:transparent;color:var(--gdc-muted);border-color:transparent;}
.gdc-btn-ghost:hover{background:#F1F5F9;color:var(--gdc-texte);}
.gdc-btn-danger{background:var(--gdc-danger-lt);color:var(--gdc-danger);border-color:rgba(220,38,38,.2);}
.gdc-btn-danger:hover{background:var(--gdc-danger);color:#fff;}
.gdc-btn-succes{background:var(--gdc-succes-lt);color:var(--gdc-succes);border-color:rgba(5,150,105,.2);}
.gdc-btn-succes:hover{background:var(--gdc-succes);color:#fff;}
.gdc-btn-sm{padding:4px 9px;font-size:12px;border-radius:6px;}
.gdc-btn-lg{padding:12px 22px;font-size:15px;}

/* ── FORMULAIRES ─────────────────────────────────────────────── */
.gdc-form-carte{background:var(--gdc-carte);border-radius:var(--gdc-rayon);box-shadow:var(--gdc-ombre);border:1px solid var(--gdc-bordure);padding:24px 28px;max-width:820px;}
.gdc-form-grille{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.gdc-form-grille-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 20px;}
.gdc-champ{margin-bottom:16px;}
.gdc-champ label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;}
.gdc-requis{color:var(--gdc-danger);}
.gdc-champ input,.gdc-champ select,.gdc-champ textarea{width:100%;padding:9px 12px;border:1.5px solid var(--gdc-bordure);border-radius:7px;font-size:13.5px;color:var(--gdc-texte);background:#fff;font-family:var(--gdc-police);outline:none;transition:border-color var(--gdc-tr),box-shadow var(--gdc-tr);appearance:none;-webkit-appearance:none;}
.gdc-champ input:focus,.gdc-champ select:focus,.gdc-champ textarea:focus{border-color:var(--gdc-primaire);box-shadow:0 0 0 3px rgba(37,99,235,.1);}
.gdc-champ select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2364748B' viewBox='0 0 20 20'%3E%3Cpath d='M10 14L4 8h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:15px;padding-right:32px;}

/* Lignes devis */
.gdc-lignes-table{width:100%;border:1.5px solid var(--gdc-bordure);border-radius:8px;overflow:hidden;}
.gdc-lignes-en-tete,.gdc-ligne-row{display:flex;gap:8px;padding:8px 12px;align-items:center;}
.gdc-lignes-en-tete{background:#F8FAFC;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--gdc-muted);border-bottom:1px solid var(--gdc-bordure);}
.gdc-ligne-row{border-bottom:1px solid var(--gdc-bordure);}
.gdc-ligne-row:last-child{border-bottom:none;}
.gdc-ligne-row input{padding:7px 10px;border:1.5px solid var(--gdc-bordure);border-radius:6px;font-size:13px;font-family:var(--gdc-police);background:#fff;}
.gdc-total-box{background:#F8FAFC;border:1.5px solid var(--gdc-bordure);border-radius:8px;padding:16px;max-width:310px;margin-left:auto;margin-top:14px;}
.gdc-total-lig{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--gdc-bordure);font-size:13px;}
.gdc-total-final{font-size:17px;font-weight:800;color:var(--gdc-primaire);border-top:2px solid var(--gdc-primaire)!important;border-bottom:none!important;padding-top:10px!important;margin-top:6px;}

/* ── BARRE DE RECHERCHE ──────────────────────────────────────── */
.gdc-barre-outils{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#FAFBFC;border-bottom:1px solid var(--gdc-bordure);flex-wrap:wrap;gap:10px;}
.gdc-recherche-wrap{display:flex;gap:6px;align-items:center;}
.gdc-recherche-input{padding:8px 12px;border:1.5px solid var(--gdc-bordure);border-radius:7px;font-size:13px;min-width:220px;font-family:var(--gdc-police);outline:none;transition:border-color var(--gdc-tr);}
.gdc-recherche-input:focus{border-color:var(--gdc-primaire);}
#gdc-resultats-ajax{transition:opacity .2s;}
#gdc-resultats-ajax.chargement{opacity:.4;}

/* ── PAGINATION ──────────────────────────────────────────────── */
.gdc-pagination{display:flex;gap:6px;justify-content:center;padding:16px 0;}
.gdc-page-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:7px;background:#fff;border:1.5px solid var(--gdc-bordure);color:var(--gdc-texte);text-decoration:none;font-size:13px;font-weight:600;transition:all var(--gdc-tr);}
.gdc-page-btn:hover{border-color:var(--gdc-primaire);color:var(--gdc-primaire);text-decoration:none;}
.gdc-page-btn.actif{background:var(--gdc-primaire);border-color:var(--gdc-primaire);color:#fff;}

/* ── CODE / CHIP ─────────────────────────────────────────────── */
code{background:#F1F5F9;border-radius:4px;padding:1px 5px;font-size:12px;color:var(--gdc-primaire);}
.gdc-chip{display:inline-block;background:#F1F5F9;border:1px solid var(--gdc-bordure);border-radius:5px;padding:2px 7px;font-size:12px;font-weight:500;}

/* ── ÉTAT VIDE ───────────────────────────────────────────────── */
.gdc-vide{text-align:center;padding:44px 20px;color:var(--gdc-muted);}
.gdc-vide-icone{font-size:44px;margin-bottom:10px;}
.gdc-vide p{margin-bottom:14px;font-size:14px;}

/* ── LIEN ────────────────────────────────────────────────────── */
.gdc-lien{color:var(--gdc-primaire);text-decoration:none;font-weight:600;}
.gdc-lien:hover{text-decoration:underline;}

/* ── PAGE DE CONNEXION ───────────────────────────────────────── */
.gdc-connexion-page{min-height:100vh;background:linear-gradient(135deg,#0F172A,#1E3A5F,#1D4ED8);display:flex;align-items:center;justify-content:center;padding:24px;}
.gdc-connexion-carte{background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.25);width:100%;max-width:420px;padding:40px;}
.gdc-connexion-logo{text-align:center;margin-bottom:28px;}
.gdc-connexion-logo h1{font-size:24px;font-weight:800;margin:6px 0 4px;}
.gdc-connexion-logo p{color:var(--gdc-muted);font-size:13px;}
.gdc-form-connexion .gdc-champ input{padding:11px 14px;font-size:14px;border-radius:9px;}

/* ── OVERLAY MOBILE ──────────────────────────────────────────── */
.gdc-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999;}
.gdc-overlay.visible{display:block;}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media(max-width:960px){
  .gdc-sidebar{transform:translateX(-100%);}
  .gdc-sidebar.ouvert{transform:translateX(0);box-shadow:4px 0 30px rgba(0,0,0,.3);}
  .gdc-principal{margin-left:0;}
  .gdc-menu-btn{display:flex!important;}
  .gdc-form-grille,.gdc-form-grille-3{grid-template-columns:1fr;}
  .gdc-widget-grille{grid-template-columns:1fr;}
  .gdc-contenu{padding:18px 14px;}
}
@media(max-width:580px){
  .gdc-stat-grille{grid-template-columns:1fr 1fr;}
  .gdc-tuiles-modules{grid-template-columns:repeat(3,1fr);}
  .gdc-topbar{padding:0 12px;}
  .gdc-topbar-date{display:none;}
  .gdc-barre-outils{flex-direction:column;align-items:stretch;}
  .gdc-recherche-wrap{flex-wrap:wrap;}
  .gdc-recherche-input{min-width:100%;}
}
