/* ============================================================
   Intranet COREX — Feuille de style personnalisée
   Design system OXYTEC — harmonisé avec OxySafe
   ============================================================ */

/* ---- Variables de design (tokens OxySafe) ---- */
:root {
  /* Couleurs primaires */
  --corex-primary:     #CC0000;
  --corex-primary-dk:  #A50000;
  --corex-dark:        #1A1A1A;
  --corex-sidebar-bg:  #1A1A1A;

  /* Couleurs fonctionnelles (conservées pour les badges/statuts) */
  --corex-red:         #EF5350;
  --corex-orange:      #F59E0B;
  --corex-green:       #00897B;
  --corex-teal:        #B2DFDB;
  --corex-yellow:      #FFF9C4;
  --corex-blue-row:    #E3F2FD;
  --corex-row-alt:     #F8F9FC;

  /* Layout & thème */
  --bg:                #F0F2F7;
  --card-bg:           #FFFFFF;
  --border:            #E4E6EF;
  --text:              #181C32;
  --text-muted:        #7E8299;
  --shadow:            0 0 30px 0 rgba(82,63,105,.08);
  --radius:            12px;
  --radius-sm:         8px;
  --form-height:       42px;
  --sidebar-width:     260px;
  --header-height:     64px;
  --transition:        .2s ease;
}

/* ---- Fonte globale Inter ---- */
#app,
html, body { overflow-x: hidden; }
.v-application,
.v-application .v-application--wrap {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
.v-application .caption,
.v-application .overline,
.v-application .subtitle-1,
.v-application .subtitle-2,
.v-application .body-1,
.v-application .body-2,
.v-application .headline,
.v-application .title,
.v-application p,
.v-application span,
.v-application div,
.v-application label,
.v-application input,
.v-application textarea,
.v-application select,
.v-list-item__title,
.v-list-item__subtitle,
.v-btn,
.v-data-table {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* ---- Fond général de l'application ---- */
.v-application {
  background-color: var(--bg) !important;
}
.v-main__wrap {
  background-color: var(--bg) !important;
}

/* ============================================================
   APP BAR
   ============================================================ */
.v-app-bar.corex-appbar {
  background-color: var(--corex-dark) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.06) !important;
  height: var(--header-height) !important;
}
.corex-appbar .v-toolbar__title {
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}
.corex-appbar .chantier-name {
  font-weight: 700;
  color: #fff;
}
.corex-appbar .suffix-name {
  font-weight: 300;
  color: rgba(255,255,255,.55);
}

/* ============================================================
   NAVIGATION DRAWER (SIDEBAR)
   ============================================================ */
.v-navigation-drawer.corex-drawer {
  background-color: var(--corex-sidebar-bg) !important;
}
.v-navigation-drawer.corex-drawer .v-navigation-drawer__content {
  overflow-y: auto !important;
  display: flex;
  flex-direction: column;
}
.v-navigation-drawer.corex-drawer .v-navigation-drawer__content > .v-list {
  flex: 1 1 auto;
  overflow-y: auto;
}
.corex-drawer .v-list-item__title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: rgba(255,255,255,.85) !important;
}
.corex-drawer .v-list-item {
  color: rgba(255,255,255,.85) !important;
  border-left: 3px solid transparent;
  transition: background var(--transition), border-color var(--transition);
  border-radius: 0 !important;
}
.corex-drawer .v-list-item .v-icon {
  color: rgba(255,255,255,.45) !important;
  font-size: 18px !important;
  transition: color var(--transition);
}
.corex-drawer .v-list-item--active {
  background-color: rgba(255,255,255,.08) !important;
  border-left-color: var(--corex-primary) !important;
}
.corex-drawer .v-list-item--active .v-icon {
  color: var(--corex-primary) !important;
}
.corex-drawer .v-list-item:hover {
  background-color: rgba(255,255,255,.06) !important;
}
.corex-drawer .v-subheader {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  color: rgba(255,255,255,.35) !important;
  text-transform: uppercase !important;
  margin-top: 8px !important;
}
.corex-drawer .v-divider {
  border-color: rgba(255,255,255,.08) !important;
}
.corex-drawer .drawer-footer {
  flex: 0 0 auto;
  width: 100%;
  padding: 12px 16px;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(0,0,0,.2);
}
.corex-drawer .user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--corex-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  text-transform: uppercase;
}
.corex-drawer .user-name {
  color: rgba(255,255,255,.85);
  font-size: 13px;
  font-weight: 500;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.corex-drawer .user-role {
  color: rgba(255,255,255,.4);
  font-size: 11px;
  line-height: 1.2;
}
.corex-drawer .btn-deconnexion {
  color: rgba(255,255,255,.45) !important;
}
.corex-drawer .btn-deconnexion:hover {
  color: var(--corex-primary) !important;
}

/* ============================================================
   CONTENU PRINCIPAL — CARTES / PANNEAUX
   ============================================================ */
.v-card {
  border-radius: var(--radius) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
}

/* ============================================================
   TABLES
   ============================================================ */
.v-data-table {
  border-radius: var(--radius) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden !important;
}
.v-data-table .v-data-table__wrapper table thead tr th,
.v-simple-table thead tr th {
  background-color: #1e293b !important;
  color: rgba(255,255,255,.9) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  padding: 0 14px !important;
  height: 42px !important;
  white-space: nowrap !important;
}
.v-data-table tbody tr {
  transition: background var(--transition);
}
.v-data-table tbody tr:nth-child(even) {
  background-color: var(--corex-row-alt) !important;
}
.v-data-table tbody tr:hover {
  background-color: #EFF6FF !important;
}
.v-data-table tbody tr td {
  font-size: 13px !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 0 14px !important;
  height: 40px !important;
}
.v-data-table .v-data-footer {
  border-top: 1px solid var(--border) !important;
  font-size: 12px !important;
}
.corex-table-link {
  color: var(--corex-primary);
  cursor: pointer;
  text-decoration: none;
  font-weight: 500;
}
.corex-table-link:hover {
  color: var(--corex-primary-dk);
  text-decoration: underline;
}

/* ============================================================
   MASTER-DETAIL
   ============================================================ */
.corex-master-detail {
  display: flex;
  gap: 16px;
  height: 100%;
  overflow: hidden;
  max-width: 100%;
}
.corex-master-panel { flex: 2 1 0; min-width: 0; overflow: hidden; }
.corex-master-panel .v-data-table__wrapper { overflow-x: auto; }

/* ── ANTI-SCROLL HORIZONTAL GLOBAL ── */
html, body { overflow-x: hidden !important; max-width: 100vw !important; }
.v-application--wrap { overflow-x: hidden !important; max-width: 100vw !important; }
.v-main { overflow-x: hidden !important; }
.v-main__wrap { overflow-x: hidden !important; }
.v-main .container { max-width: 100% !important; overflow: hidden !important; padding-right: 16px !important; }
.v-main .container > div { overflow: hidden !important; }

/* Tableaux : s'adaptent à leur conteneur, scroll interne si besoin */
.v-data-table { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }
.v-data-table__wrapper { overflow-x: auto !important; -webkit-overflow-scrolling: touch; max-width: 100%; }
.v-data-table table { width: 100% !important; }
.v-data-table th { white-space: nowrap; font-size: 11px !important; padding: 0 8px !important; }
.v-data-table td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 8px !important; }
.v-data-table td:last-child { white-space: normal; word-break: break-word; }

/* Badge connexion */
.corex-status-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 2px 10px; border-radius: 12px; }
.corex-status-badge.online { background: rgba(76,175,80,0.15); color: #4CAF50; }
.corex-status-badge.offline { background: rgba(244,67,54,0.15); color: #F44336; }

/* Recherche rapide */
.corex-search-field .v-input__slot { min-height: 34px !important; }
.corex-search-field input::placeholder { color: rgba(255,255,255,0.5) !important; }
.corex-search-results {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 999;
  background: #fff; border-radius: 8px; margin-top: 4px; max-height: 350px; overflow-y: auto;
}
.corex-search-results .v-list-item { min-height: 40px; }
.corex-search-results .v-list-item__subtitle { font-size: 11px !important; }
.corex-detail-panel {
  flex: 1 1 0; min-width: 0; overflow: hidden;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: var(--shadow);
}
.corex-detail-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}
.corex-detail-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 12px;
}

/* ---- Détail coulée : grille 2 colonnes ---- */
.coulee-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 20px;
  margin-bottom: 8px;
}
.coulee-detail-item {
  padding: 4px 0;
}
.coulee-detail-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}
.coulee-detail-val {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.coulee-detail-val--big {
  font-size: 20px;
  font-weight: 700;
}
.coulee-consigne {
  margin-top: 6px;
  padding: 10px 12px;
  background: #FFF8E1;
  border-left: 3px solid #FFA000;
  border-radius: 4px;
}
.coulee-consigne-text {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.5;
}

/* ============================================================
   TITRES DE SECTION
   ============================================================ */
.corex-section-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--corex-primary);
  display: inline-block;
}

/* ============================================================
   FORMULAIRES — harmonisés 42px
   ============================================================ */
.v-text-field.v-text-field--outlined .v-input__slot,
.v-select.v-text-field--outlined .v-input__slot,
.v-textarea.v-text-field--outlined .v-input__slot {
  min-height: var(--form-height) !important;
  border-radius: var(--radius-sm) !important;
  background: #fff !important;
}
.v-text-field--outlined .v-input__slot fieldset {
  border-width: 1.5px !important;
  border-color: var(--border) !important;
}
.v-text-field--outlined:not(.v-input--is-focused):hover .v-input__slot fieldset {
  border-color: #b0b7c3 !important;
}
.v-text-field--outlined.v-input--is-focused .v-input__slot fieldset {
  border-color: var(--corex-primary) !important;
  border-width: 2px !important;
  box-shadow: 0 0 0 3px rgba(204,0,0,.08) !important;
}
/* Dense inputs — ligne commune */
.v-text-field.v-input--dense .v-input__slot,
.v-select.v-input--dense .v-input__slot {
  min-height: 40px !important;
}
.v-input label.v-label {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--text-muted) !important;
}
.v-input input,
.v-input textarea {
  font-size: 13px !important;
  color: var(--text) !important;
}

/* ============================================================
   BOUTONS
   ============================================================ */
.v-btn {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  border-radius: var(--radius-sm) !important;
  height: var(--form-height) !important;
}
.v-btn.v-size--small {
  height: 40px !important;
  font-size: 11px !important;
}
.v-btn.v-size--x-small {
  height: 26px !important;
  font-size: 10px !important;
}
.btn-actualiser {
  border-color: var(--corex-primary) !important;
  color: var(--corex-primary) !important;
}
.btn-excel {
  border-color: #1D6F42 !important;
  color: #1D6F42 !important;
}

/* ============================================================
   CHIPS / BADGES STATUT
   ============================================================ */
.v-chip {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.3px !important;
  border-radius: 20px !important;
  height: 22px !important;
}

/* ============================================================
   MODALES / DIALOGS
   ============================================================ */
.v-dialog > .v-card {
  border-radius: var(--radius) !important;
}
.corex-modal-header {
  background-color: var(--corex-dark);
  color: #fff;
  padding: 14px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: var(--radius) var(--radius) 0 0;
}
.corex-modal-header .v-icon {
  color: #fff !important;
}

/* ============================================================
   LOGIN
   ============================================================ */
.login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
}
.login-card {
  width: 400px;
  padding: 44px 36px;
  border-radius: var(--radius) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.12) !important;
}
.login-logo {
  display: block;
  margin: 0 auto 28px;
  height: 72px;
}

/* ============================================================
   SNACKBARS
   ============================================================ */
.corex-snackbar .v-snack__wrapper {
  background-color: var(--corex-green) !important;
  color: #fff !important;
  border-radius: var(--radius-sm) !important;
}
.corex-snackbar-error .v-snack__wrapper {
  background-color: var(--corex-red) !important;
  color: #fff !important;
  border-radius: var(--radius-sm) !important;
}

/* ============================================================
   PANIERS — disponibilité
   ============================================================ */
.btn-disponible {
  border-color: var(--corex-green) !important;
  color: var(--corex-green) !important;
}
.btn-non-disponible {
  border-color: var(--corex-red) !important;
  color: var(--corex-red) !important;
}

/* ============================================================
   AUTORISATIONS RBAC
   ============================================================ */
.rbac-header {
  background: var(--corex-dark);
  color: #fff;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}

/* ============================================================
   TRÉMIES
   ============================================================ */
.tremie-row-odd  { background-color: var(--corex-teal) !important; }
.tremie-row-even { background-color: #fff !important; }

/* ============================================================
   DÉCRASSAGES
   ============================================================ */
.decr-col-yellow { background-color: var(--corex-yellow); }
.decr-col-blue   { background-color: var(--corex-blue-row); }

/* ============================================================
   POIDS / ÉCARTS
   ============================================================ */
.poids-conforme {
  color: var(--corex-green);
  font-weight: 600;
}
.poids-ecart {
  color: var(--corex-orange);
  font-weight: 600;
}
.matiere-manquante {
  color: var(--corex-orange);
  font-style: italic;
}
.situation-badge {
  min-width: 90px !important;
  justify-content: center !important;
  font-size: 12px !important;
}
.panier-table {
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
}
.panier-header {
  background: #fff9c4;
  border-bottom: 2px solid #ccc;
}
.panier-header td {
  padding: 5px 8px;
}
.panier-cell {
  padding: 6px 10px;
  height: 34px;
  vertical-align: middle;
  border-bottom: 1px solid #eee;
}

/* ============================================================
   NAVIGATION TEMPORELLE (flèches date)
   ============================================================ */
.date-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .corex-master-detail {
    flex-direction: column;
  }
  .corex-master-panel,
  .corex-detail-panel {
    flex: 1 1 100%;
  }
  .v-data-table .v-data-table__wrapper {
    overflow-x: auto;
  }
}
