/* ============================================================
   RBPROG — Styles globaux
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:       #0B0C10;
  --bg2:      #13151C;
  --surface:  #1A1D28;
  --border:   #2A2E3F;
  --accent:   #b9e200;
  --accent2:  #FF6B35;
  --text:     #F0F2F8;
  --file:     #558ad3;
  --muted:    #9BA3B8;
  --success:  #4ade80;
  --warning:  #fbbf24;
  --error:    #f87171;
  --font-display: 'Orbitron', sans-serif;
  --font-body:    'Inter', sans-serif;
}

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  min-height: 100vh;
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 2px; }

/* ── TYPOGRAPHY ── */
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.2; }
h1 { font-size: clamp(1.8rem, 3vw, 2.8rem); }
h2 { font-size: clamp(1.3rem, 2vw, 2rem); }
h3 { font-size: 1.1rem; letter-spacing: 0.05em; }
p  { color: var(--muted); }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── NAV ── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 5vw; height: 64px;
  background: rgba(11,12,16,0.9);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.nav-logo {
  font-family: var(--font-display);
  font-weight: 900; font-size: 1.2rem;
  letter-spacing: 0.1em; color: var(--accent);
  text-decoration: none;
}
.nav-logo span { color: var(--text); }
.nav-links { display: flex; gap: 1.75rem; list-style: none; align-items: center; }
.nav-links a {
  font-family: var(--font-display); font-size: 0.68rem;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text); text-decoration: none; transition: color 0.2s;
}
.nav-links a:hover { color: var(--file); }
.nav-right { display: flex; align-items: center; gap: 0.75rem; }

.nav-profile {
  display: flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-display); font-size: 0.68rem;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--text); text-decoration: none;
  padding: 7px 14px; border: 1px solid var(--border);
  transition: color 0.2s, border-color 0.2s; position: relative;
}
.nav-profile:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }
.nav-badge {
  position: absolute; top: -6px; right: -6px;
  background: var(--accent); color: #fff;
  font-size: 0.6rem; font-weight: 700;
  width: 18px; height: 18px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.nav-cta {
  font-family: var(--font-display); font-size: 0.68rem;
  letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
  background: var(--accent); color: #fff;
  padding: 8px 18px; border: none; cursor: pointer;
  text-decoration: none; transition: background 0.2s;
}
.nav-cta:hover { background: #c01a1a; text-decoration: none; }

.nav-fileservice {
  font-family: var(--font-display); font-size: 0.68rem;
  letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
  background: rgba(30,80,140,0.3); color: #60a5fa;
  padding: 8px 18px; border: 1px solid rgba(96,165,250,0.35);
  text-decoration: none; transition: background 0.2s, border-color 0.2s;
}
.nav-fileservice:hover { background: rgba(30,80,140,0.5); border-color: #60a5fa; text-decoration: none; }

.nav-credits {
  display: flex; align-items: center; gap: 0.3rem;
  padding: 6px 12px; border: 1px solid rgba(230,48,48,0.4);
  background: rgba(230,48,48,0.08);
  text-decoration: none; transition: border-color 0.2s, background 0.2s;
  cursor: pointer;
}
.nav-credits:hover { border-color: var(--accent); background: rgba(230,48,48,0.15); text-decoration: none; }
.nav-credits-icon { color: var(--accent); font-size: 0.75rem; }
.nav-credits-count {
  font-family: var(--font-display); font-size: 0.9rem;
  font-weight: 900; color: var(--accent); line-height: 1;
}
.nav-credits-label {
  font-family: var(--font-display); font-size: 0.6rem;
  color: var(--muted); letter-spacing: 0.05em;
}

/* ── LAYOUT ── */
.page-wrapper { padding-top: 64px; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 5vw; }
.section { padding: 80px 0; }
.section-sm { padding: 48px 0; }

/* ── BUTTONS ── */
.btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-display); font-size: 0.7rem;
  letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
  padding: 12px 24px; border: none; cursor: pointer;
  text-decoration: none; transition: background 0.2s, transform 0.15s;
}
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn-primary   { background: var(--accent); color: #fff; }
.btn-primary:hover { background: #c01a1a; }
.btn-secondary { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); }
.btn-success { background: #166534; color: var(--success); border: 1px solid var(--success); }
.btn-success:hover { background: #14532d; }
.btn-danger  { background: #7f1d1d; color: var(--error); border: 1px solid var(--error); }
.btn-danger:hover  { background: #6b1a1a; }
.btn-warning { background: #78350f; color: var(--warning); border: 1px solid var(--warning); }
.btn-warning:hover { background: #92400e; }
.btn-sm { padding: 8px 16px; font-size: 0.65rem; }
.btn-block { display: flex; width: 100%; justify-content: center; }

/* ── CARDS ── */
.card {
  background: var(--surface); border: 1px solid var(--border);
  padding: 2rem; position: relative; overflow: hidden;
}
.card-header {
  border-bottom: 1px solid var(--border); padding-bottom: 1rem; margin-bottom: 1.5rem;
  display: flex; justify-content: space-between; align-items: center;
}
.card-title {
  font-family: var(--font-display); font-size: 0.75rem;
  letter-spacing: 0.15em; text-transform: uppercase; color: var(--text);
}

/* ── FORMS ── */
.form-group { margin-bottom: 1.25rem; }
.form-label {
  display: block; font-family: var(--font-display);
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 0.5rem;
}
.form-control {
  display: block; width: 100%;
  background: var(--bg2); border: 1px solid var(--border);
  color: var(--text); padding: 10px 14px;
  font-family: var(--font-body); font-size: 0.975rem;
  transition: border-color 0.2s; outline: none;
}
.form-control:focus { border-color: var(--accent); }
.form-control::placeholder { color: var(--muted); }
select.form-control { cursor: pointer; }
textarea.form-control { resize: vertical; min-height: 120px; }
.form-hint { font-size: 0.82rem; color: var(--muted); margin-top: 0.4rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-error { font-size: 0.82rem; color: var(--error); margin-top: 0.4rem; }

/* ── TABLES ── */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th {
  font-family: var(--font-display); font-size: 0.65rem;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--muted); padding: 12px 16px;
  border-bottom: 1px solid var(--border); text-align: left;
}
td { padding: 14px 16px; border-bottom: 1px solid var(--border); font-size: 0.975rem; color: var(--text); }
tr:hover td { background: rgba(42,46,63,0.4); }

/* ── STATUS BADGES ── */
.badge {
  display: inline-block; padding: 3px 10px;
  font-family: var(--font-display); font-size: 0.6rem;
  letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700;
}
.status-pending    { background: rgba(251,191,36,0.15);  color: #fbbf24; }
.status-paid       { background: rgba(74,222,128,0.1);   color: #4ade80; }
.status-processing { background: rgba(96,165,250,0.15);  color: #60a5fa; }
.status-delivered  { background: rgba(74,222,128,0.15);  color: #4ade80; }
.status-cancelled  { background: rgba(248,113,113,0.15); color: #f87171; }
.status-refunded   { background: rgba(167,139,250,0.15); color: #a78bfa; }

/* ── FLASH MESSAGES ── */
.flash {
  padding: 14px 18px; margin-bottom: 1rem;
  font-size: 0.975rem; border-left: 3px solid;
}
.flash-success { background: rgba(74,222,128,0.1);  border-color: var(--success); color: var(--success); }
.flash-error   { background: rgba(248,113,113,0.1); border-color: var(--error);   color: var(--error); }
.flash-warning { background: rgba(251,191,36,0.1);  border-color: var(--warning); color: var(--warning); }
.flash-info    { background: rgba(96,165,250,0.1);  border-color: #60a5fa;        color: #60a5fa; }

/* ── STATS / CREDIT WIDGETS ── */
.stat-card {
  background: var(--surface); border: 1px solid var(--border);
  padding: 1.5rem; text-align: center;
}
.stat-card .num {
  font-family: var(--font-display); font-size: 2.2rem;
  font-weight: 900; color: var(--accent); line-height: 1;
  display: block; margin-bottom: 0.4rem;
}
.stat-card .lbl { font-size: 0.8rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; }

/* ── DASHBOARD GRID ── */
.dashboard-grid { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; align-items: start; }
.sidebar { position: sticky; top: 80px; }
.sidebar-nav { list-style: none; }
.sidebar-nav li { border-bottom: 1px solid var(--border); }
.sidebar-nav a {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 14px 16px; color: var(--muted);
  font-family: var(--font-display); font-size: 0.68rem;
  letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none; transition: color 0.2s, background 0.2s;
}
.sidebar-nav a:hover, .sidebar-nav a.active {
  color: var(--accent); background: rgba(230,48,48,0.06);
}

/* ── PROGRESS BAR ── */
.progress { height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; }
.progress-bar { height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent2)); border-radius: 3px; transition: width 1s ease; }

/* ── PAGE HEADER ── */
.page-header {
  background: var(--bg2); border-bottom: 1px solid var(--border);
  padding: 2.5rem 0;
}
.page-header h1 { margin-bottom: 0.25rem; }
.page-header p { color: var(--muted); font-size: 1rem; }
.eyebrow {
  font-family: var(--font-display); font-size: 0.65rem;
  letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 0.5rem;
}

/* ── ALERTS ── */
.alert { padding: 1rem 1.25rem; border: 1px solid; margin-bottom: 1.5rem; font-size: 0.975rem; }
.alert-info    { border-color: #2563eb; background: rgba(37,99,235,0.1); color: #93c5fd; }
.alert-success { border-color: var(--success); background: rgba(74,222,128,0.1); color: var(--success); }
.alert-warning { border-color: var(--warning); background: rgba(251,191,36,0.1); color: var(--warning); }
.alert-danger  { border-color: var(--error);   background: rgba(248,113,113,0.1); color: var(--error); }

/* ── GRIDS ── */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }

/* ── CREDIT CARD ── */
.credit-widget {
  background: var(--surface); border: 1px solid var(--border); padding: 1.5rem;
  position: relative; overflow: hidden;
}
.credit-widget::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent2));
}
.credit-widget .balance {
  font-family: var(--font-display); font-size: 3rem; font-weight: 900;
  color: var(--accent); line-height: 1; margin: 0.5rem 0;
}
.credit-widget .label {
  font-family: var(--font-display); font-size: 0.65rem;
  letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted);
}

/* ── FOOTER ── */
footer {
  background: var(--bg); border-top: 1px solid var(--border);
  padding: 3rem 0 2rem; margin-top: auto;
}
.footer-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.footer-logo { font-family: var(--font-display); font-size: 1rem; font-weight: 900; color: var(--accent); }
.footer-logo span { color: var(--text); }
.footer-copy { font-size: 0.82rem; color: var(--muted); }
.footer-links { display: flex; gap: 1.5rem; }
.footer-links a { font-size: 0.82rem; color: var(--muted); text-decoration: none; }
.footer-links a:hover { color: var(--accent); }

/* ── UTILS ── */
.mt-1 { margin-top: 0.5rem; }  .mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }  .mt-4 { margin-top: 2rem; }
.mb-1 { margin-bottom: 0.5rem; } .mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; } .mb-4 { margin-bottom: 2rem; }
.text-center { text-align: center; }
.text-right  { text-align: right; }
.text-accent { color: var(--accent); }
.text-muted  { color: var(--muted); }
.text-success { color: var(--success); }
.text-danger  { color: var(--error); }
.d-flex { display: flex; }
.align-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: 0.5rem; } .gap-2 { gap: 1rem; }
.w-100 { width: 100%; }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .form-row { grid-template-columns: 1fr; }
  .grid-3, .grid-4 { grid-template-columns: 1fr 1fr; }
  .nav-links { display: none; }
}
@media (max-width: 600px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}

/* ============================================================
   RESPONSIVE MOBILE
   ============================================================ */

/* ── NAV BURGER ── */
.nav-burger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 4px;
}
.nav-burger span {
  display: block; width: 22px; height: 2px;
  background: var(--text); transition: 0.3s;
}
.nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity: 0; }
.nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-mobile {
  display: none; position: fixed; top: 64px; left: 0; right: 0; bottom: 0;
  background: rgba(11,12,16,0.98); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border); z-index: 199;
  flex-direction: column; padding: 1rem 5vw 2rem;
  overflow-y: auto;
}
.nav-mobile.open { display: flex; }
.nav-mobile a {
  font-family: var(--font-display); font-size: 0.78rem;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text); text-decoration: none;
  padding: 16px 0; border-bottom: 1px solid var(--border);
  transition: color 0.2s;
}
.nav-mobile a:hover { color: var(--accent); }
.nav-mobile .nav-mobile-cta {
  margin-top: 1rem; text-align: center;
  background: var(--accent); color: #fff; padding: 14px;
  font-family: var(--font-display); font-size: 0.72rem;
  letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
  border: none;
}

/* ── CLOCHE NOTIFICATIONS ── */
.nav-bell {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--muted); cursor: pointer;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
  font-size: 0.95rem; border-radius: 2px;
}
.nav-bell:hover { border-color: var(--accent); color: var(--text); background: rgba(230,48,48,0.08); }
.nav-bell-badge {
  position: absolute; top: -4px; right: -4px;
  background: var(--accent); color: #fff;
  font-family: var(--font-display); font-size: 0.5rem; font-weight: 700;
  min-width: 14px; height: 14px; border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 3px; border: 1px solid var(--bg);
}

/* ── DROPDOWN NOTIFICATIONS ── */
.notif-dropdown {
  display: none; position: absolute; top: calc(100% + 8px); right: 0;
  width: 320px;
  background: var(--bg2);
  border: 1px solid var(--border);
  z-index: 300;
  box-shadow: 0 12px 40px rgba(0,0,0,0.6);
}
.notif-dropdown.open { display: block; }
.notif-dropdown::before {
  content: ''; position: absolute; top: -5px; right: 12px;
  width: 8px; height: 8px; background: var(--bg2);
  border-left: 1px solid var(--border); border-top: 1px solid var(--border);
  transform: rotate(45deg);
}
.notif-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 14px; border-bottom: 1px solid var(--border);
  font-family: var(--font-display); font-size: 0.6rem;
  letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted);
  background: var(--surface);
}
.notif-list { max-height: 320px; overflow-y: auto; }
.notif-list::-webkit-scrollbar { width: 3px; }
.notif-list::-webkit-scrollbar-thumb { background: var(--border); }
.notif-item {
  display: flex; gap: 0.75rem; align-items: flex-start;
  padding: 11px 14px; border-bottom: 1px solid var(--border);
  transition: background 0.15s; text-decoration: none; cursor: pointer;
}
.notif-item:hover { background: rgba(230,48,48,0.06); text-decoration: none; }
.notif-item.unread { border-left: 2px solid var(--accent); }
.notif-icon {
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(230,48,48,0.1); border: 1px solid rgba(230,48,48,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8rem; flex-shrink: 0;
}
.notif-title { font-size: 0.85rem; color: var(--text); font-weight: 600; display: block; line-height: 1.3; }
.notif-msg   { font-size: 0.78rem; color: var(--muted); display: block; margin-top: 2px; line-height: 1.4; }
.notif-time  { font-size: 0.68rem; color: var(--muted); display: block; margin-top: 4px; }
.notif-empty { padding: 2rem 1rem; text-align: center; color: var(--muted); font-size: 0.88rem; }
.notif-footer {
  padding: 10px 14px; border-top: 1px solid var(--border);
  background: var(--surface); text-align: center;
}
.notif-footer a { font-size: 0.78rem; color: var(--accent); text-decoration: none; font-family: var(--font-display); letter-spacing: 0.08em; }
.notif-footer a:hover { text-decoration: underline; }

/* ── STATUS BADGE COULEURS ── */
.status-waiting    { background: rgba(59,130,246,0.15);  color: #60a5fa; }
.status-processing { background: rgba(251,146,60,0.15);  color: #fb923c; }
.status-ready      { background: rgba(74,222,128,0.15);  color: #4ade80; }
.status-cancelled  { background: rgba(248,113,113,0.15); color: #f87171; }
.status-masked     { background: rgba(251,146,60,0.15);  color: #fb3c3c; }

/* ── TICKET / CHAT ── */
.chat-wrap {
  display: flex; flex-direction: column; gap: 0;
  max-height: 420px; overflow-y: auto;
  padding: 1rem; background: var(--bg);
  border: 1px solid var(--border); margin-bottom: 1rem;
}
.chat-msg {
  display: flex; flex-direction: column; max-width: 75%;
  margin-bottom: 1rem;
}
.chat-msg.mine  { align-self: flex-end; align-items: flex-end; }
.chat-msg.theirs { align-self: flex-start; align-items: flex-start; }
.chat-bubble {
  padding: 10px 14px; font-size: 0.9rem; line-height: 1.6;
  border-radius: 2px; word-break: break-word;
}
.chat-msg.mine   .chat-bubble { background: rgba(230,48,48,0.15); border: 1px solid rgba(230,48,48,0.3); color: var(--text); }
.chat-msg.theirs .chat-bubble { background: var(--surface); border: 1px solid var(--border); color: var(--text); }
.chat-meta { font-size: 0.72rem; color: var(--muted); margin-top: 4px; }
.chat-file {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 8px 12px; border: 1px solid var(--border);
  background: var(--surface); font-size: 0.82rem; color: var(--text);
  text-decoration: none; margin-top: 6px; transition: border-color 0.2s;
}
.chat-file:hover { border-color: var(--accent); text-decoration: none; }

/* ── COMPTE EN ATTENTE ── */
.account-pending {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; min-height: 60vh; text-align: center;
  padding: 3rem;
}
.pending-icon {
  width: 80px; height: 80px; border-radius: 50%;
  background: rgba(251,191,36,0.1); border: 2px solid #fbbf24;
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem; margin-bottom: 1.5rem;
}
.pending-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: rgba(251,191,36,0.1); border: 1px solid rgba(251,191,36,0.4);
  color: #fbbf24; font-family: var(--font-display); font-size: 0.65rem;
  letter-spacing: 0.15em; text-transform: uppercase; padding: 6px 14px;
  margin-bottom: 1rem;
}

/* ============================================================
   RESPONSIVE — TABLET (≤ 900px)
   ============================================================ */
@media (max-width: 900px) {
  .nav-links           { display: none; }
  .nav-burger          { display: flex; }
  .nav-credits-label   { display: none; }
  .nav-desktop-only    { display: none !important; }
  .notif-dropdown      { width: min(320px, calc(100vw - 2rem)); right: -2rem; }
  .container           { padding: 0 4vw; }
  section, .section    { padding: 60px 0; }
  .section-sm          { padding: 40px 0; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .form-row                  { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .sidebar        { position: static !important; }
  .hero-grid          { grid-template-columns: 1fr !important; }
  .oscilloscope-wrap  { display: none; }
  .d-flex { flex-wrap: wrap; }
  .cta-inner { flex-direction: column; text-align: center; gap: 1.5rem; }
  footer .footer-inner { flex-direction: column; gap: 1.5rem; }
  .footer-links        { flex-wrap: wrap; gap: 1rem; }
  .table-wrap          { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .chat-msg            { max-width: 85%; }

  /* GRILLES INLINE */
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  [style*="position:sticky"], [style*="position: sticky"] { position: static !important; top: auto !important; }
  [style*="display:grid"], [style*="display: grid"] { display: flex !important; flex-direction: column !important; }

}

/* ============================================================
   RESPONSIVE — MOBILE (≤ 600px)
   ============================================================ */
@media (max-width: 600px) {
  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.2rem; }
  h3 { font-size: 1rem; }
  .nav                 { padding: 0 4vw; height: 56px; }
  .nav-logo            { font-size: 1rem; }
  .nav-credits         { padding: 5px 9px; }
  .nav-credits-count   { font-size: 0.85rem; }
  .nav-bell            { width: 30px; height: 30px; font-size: 0.85rem; }
  .nav-profile         { padding: 6px 10px; font-size: 0.6rem; }
  .nav-cta             { padding: 6px 12px; font-size: 0.6rem; }
  .page-wrapper        { padding-top: 56px; }
  .nav-mobile          { top: 56px; }
  .notif-dropdown      { width: calc(100vw - 1rem); right: -1rem; top: calc(100% + 6px); }
  .container           { padding: 0 1rem; }
  section, .section    { padding: 48px 0; }
  .section-sm          { padding: 28px 0; }
  .card                { padding: 1rem; }
  .card-header         { flex-wrap: wrap; gap: 0.5rem; }
  .btn                 { padding: 10px 16px; font-size: 0.62rem; }
  .btn-sm              { padding: 7px 12px; font-size: 0.58rem; }
  .btn-block           { width: 100%; justify-content: center; }
  .form-control        { font-size: 16px; }
  select.form-control  { font-size: 16px; }
  .stat-card .num      { font-size: 1.4rem; }
  .stat-card .lbl      { font-size: 0.65rem; }
  .table-wrap          { font-size: 0.8rem; border: 1px solid var(--border); }
  td, th               { padding: 8px 6px; }
  .credit-widget       { padding: 1.25rem; }
  .credit-widget .balance { font-size: 2.2rem; }
  .sidebar-nav a       { padding: 12px 14px; font-size: 0.65rem; }
  .page-header         { padding: 1.5rem 0; }
  .chat-msg            { max-width: 92%; }
  .chat-wrap           { max-height: 320px; padding: 0.75rem; }
  .chat-bubble         { font-size: 0.88rem; padding: 8px 12px; }
  .notif-dropdown      { position: fixed; left: 0.5rem; right: 0.5rem; width: auto; }
  .notif-dropdown::before { display: none; }
  .hero-actions        { flex-direction: column; gap: 0.75rem; }
  .hero-actions .btn   { width: 100%; justify-content: center; }
  .account-pending     { padding: 2rem 1rem; min-height: 50vh; }
  .footer-inner        { text-align: center; }
  .footer-links        { justify-content: center; }
  .accordion-header    { flex-wrap: wrap; gap: 0.5rem; }
  .credit-badge-lg     { font-size: 0.85rem; padding: 5px 10px; }
  .credit-badge-sm     { font-size: 0.75rem; padding: 4px 8px; }
  .pack-card           { padding: 1.25rem; }

  /* GRILLES INLINE */
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:1fr 1fr"], [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: 1fr !important; }
  [style*="display:grid"], [style*="display: grid"] { display: flex !important; flex-direction: column !important; }
  .order-form-grid { display: flex !important; flex-direction: column !important; }

}

/* ============================================================
   RESPONSIVE — TRÈS PETIT MOBILE (≤ 380px)
   ============================================================ */
@media (max-width: 380px) {
  .nav-right           { gap: 0.4rem; }
  .nav-credits         { display: none; }
  h1                   { font-size: 1.3rem; }
  .card                { padding: 0.875rem; }
  .btn                 { padding: 9px 12px; }
}

/* PAGE D'ACCUEIL */
.hero { min-height:90vh;position:relative;display:flex;align-items:flex-end;overflow:hidden; }
.hero-img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.35); }
.hero-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,13,0.95) 0%,rgba(8,10,13,0.4) 60%,transparent 100%); }
.hero-inner { position:relative;z-index:2;width:100%;padding:0 5vw 80px;max-width:1200px;margin:0 auto; }
.hero-label { display:inline-block;font-family:var(--font-display);font-size:0.6rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem; }
.hero-title { font-size:clamp(2.2rem,5vw,4.5rem);font-weight:700;line-height:1.1;color:#fff;margin-bottom:1.5rem;max-width:700px; }
.hero-title span { color:var(--accent); }
.hero-sub { font-size:1.05rem;color:rgba(255,255,255,0.65);max-width:480px;line-height:1.7;margin-bottom:2.5rem; }
.hero-ctas { display:flex;gap:1rem;flex-wrap:wrap; }
.trust-bar { background:var(--surface);border-bottom:1px solid var(--border);padding:0.25rem 5vw;display:flex;align-items:center;gap:3rem;flex-wrap:wrap;font-size:0.82rem;color:var(--muted); }
.trust-item { display:flex;align-items:center;gap:0.5rem; }
.trust-item strong { color:var(--text); }
.prestation-grid { display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--border); }
.prestation-item { padding:3rem 2.5rem;border-right:1px solid var(--border); }
.prestation-item:last-child { border-right:none; }
.prestation-img { width:100%;height:200px;object-fit:cover;margin-bottom:2rem;opacity:0.9; }
.prestation-cat { font-family:var(--font-display);font-size:0.58rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:0.75rem;display:block; }
.prestation-title { font-size:1.15rem;font-weight:700;margin-bottom:0.75rem; }
.prestation-desc { font-size:0.9rem;color:var(--muted);line-height:1.75;margin-bottom:1.75rem; }
.steps { display:grid;grid-template-columns:repeat(4,1fr); }
.step { padding:2.5rem 2rem;border-right:1px solid var(--border); }
.step:last-child { border-right:none; }
.step-num { font-family:var(--font-display);font-size:0.58rem;letter-spacing:0.2em;color:var(--accent);margin-bottom:1.25rem;display:block; }
.step-title { font-size:0.95rem;font-weight:700;margin-bottom:0.5rem; }
.step-desc { font-size:0.85rem;color:var(--muted);line-height:1.7; }
.galerie { display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;min-height:520px; }
.galerie-item { position:relative;overflow:hidden; }
.galerie-item img { width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease;display:block; }
.galerie-item:hover img { transform:scale(1.04); }
.galerie-item.span-rows { grid-row:span 2; }
.galerie-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,13,0.75) 0%,transparent 55%); }
.galerie-caption { position:absolute;bottom:1.5rem;left:1.75rem;color:#fff; }
.galerie-caption span { font-family:var(--font-display);font-size:0.55rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent); }
.galerie-caption h3 { font-size:1rem;margin-top:0.3rem; }
.galerie-border { border-left:1px solid var(--border);border-bottom:1px solid var(--border); }
.option-list { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border); }
.option-item { background:var(--bg2);padding:1.75rem 2rem; }
.option-tag { display:inline-block;margin-bottom:0.75rem;font-family:var(--font-display);font-size:0.55rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(230,48,48,0.25);padding:2px 8px; }
.option-desc { font-size:0.85rem;color:var(--muted);line-height:1.6; }
.avis-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:2rem; }
.avis-card { padding:2rem;border:1px solid var(--border); }
.avis-etoiles { color:var(--accent);letter-spacing:3px;font-size:0.8rem;margin-bottom:1rem; }
.avis-texte { font-size:0.92rem;color:var(--text);line-height:1.75;margin-bottom:1.25rem;font-style:italic; }
.avis-auteur { font-size:0.8rem;color:var(--muted); }
.avis-auteur strong { color:var(--text);display:block; }
.contact-line { display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border); }
.contact-ico { width:40px;height:40px;border:1px solid var(--border);border-radius:10px;display:grid;place-items:center;flex-shrink:0; }
.ann-bar { background:var(--accent);height:32px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative; }
.ann-inner { position:relative;height:32px;width:100%;overflow:hidden; }
.ann-face { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;color:#0B0C10;font-weight:700;transition:opacity 0.5s,transform 0.5s; }
.cta-final { margin-top:20px;background:rgba(184,225,0,0.75);padding:2rem 8vw;display:flex;align-items:center;gap:2rem;flex-wrap:wrap; }
.cta-final h2 { color:#fff;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.2;margin-right:auto; }
.cta-final h2 span { opacity:0.55; }
.btn-blanc { display:inline-block;background:#fff;color:var(--accent);font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;font-weight:700;padding:14px 28px;text-decoration:none;white-space:nowrap; }
.btn-blanc:hover { opacity:0.92;text-decoration:none; }
@media (max-width:900px) {
  .prestation-grid { grid-template-columns:1fr; }
  .prestation-item { border-right:none;border-bottom:1px solid var(--border); }
  .steps { grid-template-columns:1fr 1fr; }
  .galerie { grid-template-columns:1fr;grid-template-rows:260px 200px 200px; }
  .galerie-item.span-rows { grid-row:span 1; }
  .option-list { grid-template-columns:1fr; }
  .avis-grid { grid-template-columns:1fr; }
  .trust-bar { gap:1.5rem; }
  .cta-final { flex-direction:column;align-items:flex-start; }
}
@media (max-width:600px) {
  .hero-inner { padding: 0 1rem 30px;margin-bottom: 140px }
  .hero-label { margin-top: -200px; }
  .hero-inner { padding: 0 1rem 20px; }
  .steps { grid-template-columns:1fr; }
  .hero { min-height:80vh; }
}

/* PAGE PRESTATIONS */
.presta-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:3rem; }
.presta-card { position:relative;height:260px;overflow:hidden;border:1px solid var(--border);cursor:default; }
.presta-card img { width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease,filter 0.5s ease;display:block;filter:brightness(0.80); }
.presta-card:hover img { transform:scale(1.1);filter:brightness(0.6); }
.presta-card::after { content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,13,0.95) 0%,rgba(8,10,13,0.1) 65%,transparent 100%); }
.presta-card-body { position:absolute;bottom:0;left:0;right:0;padding:1.25rem 1.5rem;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:0.5rem; }
.presta-card-name { font-size:1rem;font-weight:700;color:#fff; }
.presta-card-price { font-family:var(--font-display);font-size:0.75rem;font-weight:700;color:var(--accent);white-space:nowrap;flex-shrink:0; }
@media (max-width:700px) { .presta-grid { grid-template-columns:1fr 1fr; } .presta-card { height:200px; } }
@media (max-width:480px) { .presta-grid { grid-template-columns:1fr; } }

/* PAGE FILESERVICE */
.stage-lbl, .opt-lbl { display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border);cursor:pointer;transition:border-color 0.2s,background 0.2s;background:var(--surface); }
.stage-lbl:hover { border-color:rgba(230,48,48,0.5); }
.stage-lbl.selected { border-color:var(--accent);background:rgba(230,48,48,0.06); }
.opt-lbl { padding:0.875rem;opacity:1;transition:border-color 0.2s,opacity 0.2s; }
.opt-lbl.disabled { opacity:0.35;pointer-events:none;cursor:not-allowed; }
.opt-lbl.selected { border-color:var(--accent);background:rgba(230,48,48,0.06); }
.credit-badge { display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;background:rgba(230,48,48,0.15);border:1px solid rgba(230,48,48,0.4);color:#fff;border-radius:2px;white-space:nowrap; }
.credit-badge-lg { font-size:1rem;padding:6px 14px; }
.credit-badge-sm { font-size:0.85rem;padding:5px 12px; }

/* PAGE ACHETER CRÉDITS */
.pack-card { background:var(--surface);border:2px solid var(--border);padding:1.75rem;cursor:pointer;transition:border-color 0.2s,background 0.2s;position:relative; }
.pack-card:hover { border-color:rgba(230,48,48,0.4); }
.pack-card.selected { border-color:var(--accent);background:rgba(230,48,48,0.05); }
.pack-card input[type=radio] { position:absolute;opacity:0;pointer-events:none; }
.bonus-tag { position:absolute;top:-1px;right:20px;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:4px 10px; }

/* PAGE ACCOUNT — ACCORDION */
.accordion-header { display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none;padding:0; }
.accordion-header:hover .accordion-toggle { color:var(--accent); }
.accordion-toggle { font-size:1rem;color:var(--muted);transition:transform 0.25s,color 0.2s;flex-shrink:0; }
.accordion-toggle.open { transform:rotate(180deg); }
.accordion-body { overflow:hidden;transition:max-height 0.3s ease,opacity 0.3s ease;max-height:0;opacity:0; }
.accordion-body.open { max-height:2000px;opacity:1; }