/* Couche application — au-dessus du design system "Organic" (styles.css). */
body { background: var(--color-bg); }

/* ————— Barre du haut ————— */
.topbar { background: var(--color-neutral-900); color: var(--color-bg); }
.topbar-inner {
  max-width: 1280px; margin: 0 auto; padding: 14px clamp(16px, 4vw, 40px);
  display: flex; align-items: center; gap: 16px 28px; flex-wrap: wrap;
}
.brand {
  font-family: var(--font-heading); font-size: 20px;
  color: var(--color-bg); text-decoration: none; margin-right: auto;
}
.brand-sub { font-family: var(--font-body); font-size: 12px; color: var(--color-accent-300); }
.topnav { display: flex; gap: 4px 20px; flex-wrap: wrap; }
.topnav a { color: inherit; opacity: .8; text-decoration: none; font-size: 14px; padding: 6px 2px; }
.topnav a:hover { opacity: 1; color: var(--color-accent-300); }
.topnav a[aria-current="page"] { opacity: 1; color: var(--color-accent-300); border-bottom: 2px solid var(--color-accent); }
.topbar-user { font-size: 13px; display: flex; align-items: center; gap: 10px; }
.topbar-user .btn-ghost { color: var(--color-accent-300); font-size: 13px; }

/* ————— Page ————— */
.page { max-width: 1280px; margin: 0 auto; padding: clamp(20px, 3vw, 36px) clamp(16px, 4vw, 40px) 60px; }
.page-title { font-size: clamp(26px, 3vw, 34px); margin-bottom: 22px; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.page-head .page-title { margin-bottom: 0; }
.count { font-size: 15px; color: var(--color-neutral-600); font-family: var(--font-body); }

.flash { border-radius: var(--radius-md); padding: 12px 18px; margin-bottom: 18px; font-size: 14px; }
.flash.ok { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.flash.err { background: var(--color-accent-100); color: var(--color-accent-800); }

/* ————— KPI ————— */
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 22px; }
.kpi { padding: 20px; gap: 2px; }
.kpi-value { font-family: var(--font-heading); font-size: 34px; color: var(--color-accent-700); }
.kpi-label { font-size: 13px; color: var(--color-neutral-700); }

/* ————— Tables & formulaires ————— */
.table-wrap { overflow-x: auto; }
.table td { vertical-align: top; }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.form-card { padding: clamp(20px, 3vw, 30px); max-width: 860px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.filter-bar { margin-bottom: 16px; max-width: 320px; }
.dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 14px; margin: 0; }
.dl dt { color: var(--color-neutral-600); }
.dl dd { margin: 0; }
.produit-row { display: grid; grid-template-columns: 2fr 110px; gap: 10px; margin-bottom: 10px; }
.mvt-form { display: flex; flex-direction: column; gap: 10px; }

/* ————— Connexion ————— */
.login-body {
  min-height: 100vh; display: grid; place-items: center;
  background: var(--color-neutral-900); padding: 20px;
}
.login-card { width: min(400px, 100%); padding: 34px; }
.login-brand { font-family: var(--font-heading); font-size: 26px; }

/* ————— Compte rendu ————— */
.cr { padding: clamp(24px, 4vw, 44px); max-width: 860px; margin: 0 auto; background: #fff; }
.cr-head { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-bottom: 3px solid var(--color-accent); padding-bottom: 18px; margin-bottom: 20px; }
.cr-brand { font-family: var(--font-heading); font-size: 26px; }
.cr-sub { font-size: 12px; color: var(--color-neutral-600); margin-top: 4px; }
.cr-ref { text-align: right; }
.cr-refnum { font-family: var(--font-heading); font-size: 20px; margin-top: 8px; }
.cr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; font-size: 14px; margin-bottom: 8px; }
.cr-label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--color-accent-700); font-weight: 700; }
.cr-section { margin-top: 18px; font-size: 14px; }
.cr-section p { margin: 6px 0 0; line-height: 1.6; }
.cr-foot { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--color-divider); font-size: 11px; color: var(--color-neutral-600); }

@media print {
  .topbar, .noprint, .flash { display: none !important; }
  .page { padding: 0; max-width: none; }
  .cr { box-shadow: none !important; border-radius: 0 !important; }
  body { background: #fff; }
}

/* ————— Responsive ————— */
@media (max-width: 900px) {
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
  .two-cols, .form-grid, .cr-grid { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .kpi-row { grid-template-columns: 1fr; }
}
