/*
 * Roulenord — Espace admin
 * Styles spécifiques à cette section. Réutilise les tokens de couleur/typo
 * du site principal (voir /css/styles.css, chargé avant celui-ci).
 */

body.espace{
  background:var(--paper-deep);
  min-height:100vh;
}

.espace-header{
  background:var(--ink); color:var(--paper); padding:18px 0; border-bottom:1px solid var(--line);
}
.espace-header .wrap{ max-width:960px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.espace-header .brand{ display:flex; align-items:center; gap:10px; }
.espace-header .brand .mark{ width:30px; height:26px; }
.espace-header .brand .mark g{ fill:var(--paper) !important; }
.espace-header .brand .word{ font-family:'Big Shoulders Display'; font-weight:800; font-size:18px; letter-spacing:0.03em; text-transform:uppercase; color:var(--paper); }
.espace-header .subtitle{ font-family:'IBM Plex Mono'; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(240,241,236,0.55); margin-left:10px; }
.espace-header .who{ display:flex; align-items:center; gap:14px; font-size:13px; color:rgba(240,241,236,0.75); }
.espace-header .who a{ color:var(--paper); font-weight:600; }
.espace-header .who a:hover{ color:var(--accent); }

.espace-main{ max-width:960px; margin:0 auto; padding:48px 32px 80px; }
.espace-main.narrow{ max-width:460px; }
.espace-main h1{ font-size:clamp(28px,4vw,38px); margin-bottom:8px; }
.espace-main .lede{ font-size:14px; color:var(--ink-soft); margin-bottom:36px; max-width:60ch; }

.espace-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:28px 30px; margin-bottom:24px;
}
.espace-card h2{ font-size:19px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; margin-bottom:4px; }
.espace-card .card-sub{ font-size:12.5px; color:var(--ink-soft); margin-bottom:20px; }

.espace-login-wrap{ display:flex; align-items:center; justify-content:center; min-height:100vh; padding:24px; }
.espace-login-card{ width:100%; max-width:400px; }
.espace-login-card .brand-lockup{ display:flex; align-items:center; gap:10px; justify-content:center; margin-bottom:28px; }
.espace-login-card .brand-lockup .mark{ width:32px; height:28px; }
.espace-login-card .brand-lockup .word{ font-family:'Big Shoulders Display'; font-weight:800; font-size:21px; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink); }

.alert{
  padding:12px 16px; border-radius:8px; font-size:13px; font-weight:600; margin-bottom:18px;
}
.alert-error{ background:#fbe4e0; color:#7a2314; }
.alert-success{ background:var(--paper-deep); color:var(--ink); border:1px solid var(--line); }

table.espace-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
table.espace-table th{
  text-align:left; font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.06em;
  color:var(--ink-soft); font-weight:600; padding:0 12px 10px; border-bottom:1px solid var(--line);
}
table.espace-table td{ padding:12px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.espace-table tr:last-child td{ border-bottom:none; }

.doc-pill{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--ink);
  padding:6px 12px; border-radius:999px; background:var(--paper-deep); border:1px solid var(--line);
}
.doc-pill:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.doc-missing{ font-size:12.5px; color:var(--ink-soft); font-style:italic; }

.tag-admin{ font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; letter-spacing:0.06em; padding:3px 8px; border-radius:999px; background:var(--accent); color:var(--accent-ink); font-weight:700; }
.tag-inactif{ font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; letter-spacing:0.06em; padding:3px 8px; border-radius:999px; background:#fbe4e0; color:#7a2314; font-weight:700; }

.espace-nav{ display:flex; gap:18px; margin-bottom:32px; border-bottom:1px solid var(--line); }
.espace-nav a{
  font-size:13px; font-weight:600; color:var(--ink-soft); padding:0 0 12px; border-bottom:2px solid transparent; margin-bottom:-1px;
}
.espace-nav a.active, .espace-nav a:hover{ color:var(--ink); border-bottom-color:var(--accent); }

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-grid.single{ grid-template-columns:1fr; }
@media (max-width:600px){ .form-grid{ grid-template-columns:1fr; } }

.cmr-zone{ padding:18px 0; border-top:1px solid var(--line); }
.cmr-zone:first-child{ border-top:none; padding-top:0; }
.cmr-zone-title{
  font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--ink-soft); font-weight:600; margin:0 0 12px;
}
.form-grid-3{ grid-template-columns:1fr 1fr 1fr; }
.form-grid-tier{ grid-template-columns:1.4fr 1.4fr 1fr; }
@media (max-width:760px){ .form-grid-3, .form-grid-tier{ grid-template-columns:1fr; } }
.cmr-adresse{ font-size:13px; }
.cmr-ligne{
  display:grid; grid-template-columns:2fr 1.2fr 1fr auto; gap:12px; align-items:end; margin-bottom:12px;
}
@media (max-width:760px){ .cmr-ligne{ grid-template-columns:1fr; } }
.cmr-ligne-remove{ padding:9px 12px; font-size:13px; align-self:center; }

.offline-bar{
  background:var(--accent); color:var(--accent-ink); text-align:center; font-size:12.5px; font-weight:700;
  padding:9px 16px; letter-spacing:0.01em;
}
.sync-status{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--ink-soft); background:var(--paper-deep);
  border:1px solid var(--line); border-radius:999px; padding:9px 16px; margin-bottom:28px;
}
#install-btn{ padding:7px 14px; font-size:12px; flex:none; }

.btn svg{ width:14px; height:14px; flex:none; }

/* Tableau de bord — tuiles documents Roulenord (Licence, Ass. RCP, RIB, Kbis) */
.dash-doc-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:700px){ .dash-doc-tiles{ grid-template-columns:repeat(2,1fr); } }
.dash-doc-tile{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;
  padding:18px 12px; border:1px solid var(--line); border-radius:10px; background:var(--paper-deep);
  text-decoration:none; color:var(--ink); transition:border-color .15s ease;
}
.dash-doc-tile:hover{ border-color:var(--accent); }
.dash-doc-tile .dash-doc-icon{ width:26px; height:26px; color:var(--ink-soft); }
.dash-doc-tile.is-ok .dash-doc-icon{ color:var(--accent-ink,var(--ink)); }
.dash-doc-tile .dash-doc-label{ font-size:13px; font-weight:700; }
.dash-doc-tile .dash-doc-status{ font-size:11px; color:var(--ink-soft); }
.dash-doc-tile.is-ok .dash-doc-status{ color:var(--ink); font-weight:600; }

/* Tableau de bord — blocs "5 derniers" (CMR, clients, véhicules, chauffeurs) */
.dash-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:700px){ .dash-grid{ grid-template-columns:1fr; } }
.dash-list{ display:flex; flex-direction:column; }
.dash-list-item{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--line); font-size:13.5px; text-decoration:none; color:var(--ink);
}
.dash-list-item:last-child{ border-bottom:none; }
.dash-list-item:hover .dash-list-title{ color:var(--accent-ink,var(--ink)); text-decoration:underline; }
.dash-list-title{ font-weight:600; }
.dash-list-meta{ font-size:11.5px; color:var(--ink-soft); white-space:nowrap; }
.dash-list-more{ margin-top:14px; font-size:12.5px; font-weight:600; }
