/* ═══════════════════════════════════════════════════════════════
   PrintHive — App CSS (Optimized & Improved)
   Compatible avec tes classes existantes (v2.x)
   ═══════════════════════════════════════════════════════════════ */

:root {
  --bg: #0e0c0a; --bg2: #141108; --bg3: #1c1812; --bg4: #252018;
  --orange: #e8622a; --orange2: #f5843d; --amber: #d4a853;
  --cream: #f0e6d3; --muted: #7a6a58; --border: #2a2018; --border2: #3a3025;
  --text: #e8ddd0; --text2: #a09080;
  --green: #4caf7d; --red: #e85b4a; --blue: #4a90d9;

  --sidebar-w: 242px;
  --topbar-h: 58px;
  --radius: 2px;

  /* Optimisation */
  --shadow-sm: 0 4px 16px rgba(0,0,0,0.22);
  --shadow-md: 0 8px 24px rgba(0,0,0,0.30);
  --shadow-xl: 0 24px 60px rgba(0,0,0,0.60);
  --t-fast: 140ms;
  --t-med: 220ms;
  --ease: cubic-bezier(0.4,0,0.2,1);
  --focus: 0 0 0 2px rgba(232,98,42,0.22), 0 0 0 3px rgba(232,98,42,0.35);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; }
::selection { background: rgba(232,98,42,0.22); color: var(--cream); }
:focus-visible { outline: none; box-shadow: var(--focus); }
.mono { font-family:'JetBrains Mono',monospace; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Custom scrollbar */
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border2); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:var(--muted); }

/* ── AUTH ─────────────────────────────────────────────────────── */
.auth-body {
  min-height:100vh; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  font-family:'DM Sans',sans-serif; color:var(--text);
  position:relative; overflow:hidden;
}
.auth-bg-grid {
  position:fixed; inset:0;
  background-image: radial-gradient(circle, var(--border) 1px, transparent 1px);
  background-size: 28px 28px; opacity:0.6; pointer-events:none;
}
.auth-glow {
  position:fixed; width:700px; height:700px;
  background:radial-gradient(circle,rgba(232,98,42,0.09) 0%,transparent 70%);
  top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none;
}
.auth-container { position:relative; z-index:1; width:100%; max-width:420px; padding:24px; }
.auth-logo {
  display:flex; align-items:center; gap:10px;
  text-decoration:none; margin-bottom:32px; justify-content:center;
}
.logo-text {
  font-family:'Bebas Neue',sans-serif; font-size:28px;
  letter-spacing:2px; color:var(--cream);
}
.logo-text span { color:var(--orange); }
.auth-card {
  background:var(--bg2); border:1px solid var(--border);
  padding:38px; position:relative; overflow:hidden;
}
.auth-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, transparent 0%, var(--orange) 50%, transparent 100%);
}
.auth-header { margin-bottom:28px; }
.auth-tag {
  font-family:'JetBrains Mono',monospace; font-size:11px;
  color:var(--orange); letter-spacing:1px; margin-bottom:12px;
}
.auth-title {
  font-family:'Bebas Neue',sans-serif; font-size:48px;
  letter-spacing:2px; color:var(--cream); line-height:1;
}
.auth-subtitle { font-size:14px; color:var(--text2); margin-top:8px; }
.auth-footer-links { text-align:center; margin-top:20px; font-size:13px; color:var(--text2); }
.auth-footer-links a { color:var(--orange); text-decoration:none; margin-left:6px; }
.auth-footer-links a:hover { text-decoration: underline; }
.auth-demo-hint {
  text-align:center; margin-top:16px;
  font-size:12px; color:var(--muted);
  background:var(--bg3); border:1px solid var(--border);
  padding:10px 14px;
}

/* ── APP LAYOUT ───────────────────────────────────────────────── */
.app-body {
  display:flex; min-height:100vh;
  background:var(--bg); color:var(--text);
  font-family:'DM Sans',sans-serif; overflow:hidden;
  background-image: radial-gradient(circle, var(--border) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* FULLSCREEN (mode cockpit) */
.app-body.is-fullscreen {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
}
.app-body.is-fullscreen .app-content {
  max-width: none !important;
  width: 100% !important;
  padding: 12px !important;
}
.app-body.is-fullscreen .sidebar { transform: translateX(-100%) !important; }
.app-body.is-fullscreen .app-main { margin-left: 0 !important; }
/* Si tu veux cacher la topbar en fullscreen, décommente :
.app-body.is-fullscreen .app-topbar { display:none !important; }
*/

/* ── SIDEBAR ──────────────────────────────────────────────────── */
.sidebar {
  width:var(--sidebar-w); background:var(--bg2);
  border-right:1px solid var(--border);
  display:flex; flex-direction:column;
  position:fixed; left:0; top:0; bottom:0; z-index:200;
  transition:transform var(--t-med) var(--ease);
  background-image: none;
}
.sidebar::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, var(--orange), transparent 80%);
}
.sidebar-logo {
  display:flex; align-items:center; gap:12px;
  padding:22px 20px 20px;
  position:relative;
}
.sidebar-logo::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background: linear-gradient(90deg, var(--orange) 0%, var(--border) 50%, transparent 100%);
  opacity: 0.4;
}
.sidebar-logo > svg {
  position:relative; flex-shrink:0;
  filter: drop-shadow(0 0 8px rgba(232,98,42,0.4));
}
.sidebar-nav { flex:1; padding:8px 0; overflow-y:auto; }
.nav-section {
  padding:16px 20px 6px;
  font-family:'JetBrains Mono',monospace; font-size:9px;
  color:var(--muted); letter-spacing:2px; text-transform:uppercase;
  opacity:0.7;
}
.nav-item {
  display:flex; align-items:center; gap:12px;
  padding:11px 20px; font-size:13px; font-weight:500;
  color:var(--text2); text-decoration:none;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
  position:relative;
  border-left:2px solid transparent;
  margin:1px 0;
}
.nav-item:hover {
  background:var(--bg3); color:var(--cream);
  border-left-color:var(--border2);
}
.nav-item.active {
  background: linear-gradient(90deg, rgba(232,98,42,0.12) 0%, rgba(232,98,42,0.02) 100%);
  color:var(--orange);
  border-left:2px solid var(--orange);
}
.nav-icon {
  width:20px; height:20px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  opacity:0.7; transition:opacity var(--t-fast) var(--ease);
}
.nav-item:hover .nav-icon,
.nav-item.active .nav-icon { opacity:1; }
.nav-svg {
  width:16px; height:16px;
  fill:none; stroke:currentColor; stroke-width:1.5;
  stroke-linecap:round; stroke-linejoin:round;
}
.sidebar-footer { padding:16px 20px; border-top:1px solid var(--border); }
.user-chip { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.user-avatar {
  width:34px; height:34px;
  background: linear-gradient(135deg, var(--orange), var(--orange2));
  display:flex; align-items:center; justify-content:center;
  font-family:'Bebas Neue',sans-serif; font-size:17px; color:white;
  flex-shrink:0; border-radius:50%;
  box-shadow:0 0 0 2px var(--bg2), 0 0 0 3px rgba(232,98,42,0.25);
}
.user-name { font-size:13px; font-weight:600; color:var(--cream); }
.user-plan {
  font-family:'JetBrains Mono',monospace; font-size:10px;
  color:var(--orange); letter-spacing:1px;
}
.btn-logout {
  display:block; text-align:center; text-decoration:none;
  font-size:11px; color:var(--muted); padding:7px;
  border:1px solid var(--border);
  transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
  font-family:'JetBrains Mono',monospace; letter-spacing:0.5px;
}
.btn-logout:hover { border-color:var(--red); color:var(--red); background:rgba(232,91,74,0.05); }

/* ── MAIN CONTENT ─────────────────────────────────────────────── */
.app-main {
  margin-left:var(--sidebar-w);
  flex:1; display:flex; flex-direction:column;
  min-height:100vh; overflow:hidden;
}
.app-topbar {
  height:var(--topbar-h); background:rgba(20,17,8,0.95);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:16px;
  padding:0 28px; position:sticky; top:0; z-index:100;
  backdrop-filter:blur(8px);
}
.topbar-spacer { flex:1; }
.topbar-right { display:flex; align-items:center; gap:12px; }
.sidebar-toggle {
  display:none; background:transparent; border:none;
  color:var(--text2); font-size:18px; cursor:pointer; padding:4px;
}

.ws-status {
  display:flex; align-items:center; gap:7px;
  font-family:'JetBrains Mono',monospace; font-size:11px;
  color:var(--muted); padding:5px 11px;
  border:1px solid var(--border); background:var(--bg3);
}
.ws-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--muted); transition:background var(--t-med) var(--ease);
}
.ws-dot.connected { background:var(--green); animation:pulse 2s infinite; box-shadow:0 0 6px var(--green); }
.ws-label { letter-spacing:0.5px; }

.app-content{
  flex: 1;
  width: 100%;
  padding: clamp(14px, 2.2vw, 32px);
  overflow-y: auto;
  max-width: none; /* ✅ wide par défaut */
}

/* ── PAGE HEADER ──────────────────────────────────────────────── */
.page-header {
  display:flex; align-items:flex-start; justify-content:space-between;
  margin-bottom:32px;
}
.page-back {
  display:inline-flex; align-items:center; gap:6px;
  font-size:12px; color:var(--muted); text-decoration:none;
  margin-bottom:10px; font-family:'JetBrains Mono',monospace;
  transition:color var(--t-fast) var(--ease);
}
.page-back:hover { color:var(--orange); }
.page-title {
  font-family:'Bebas Neue',sans-serif; font-size:38px;
  letter-spacing:3px; color:var(--cream); line-height:1;
  display:inline-block;
}
.page-title::after {
  content:''; display:block; width:36px; height:2px;
  background:var(--orange); margin-top:10px;
}
.page-sub { font-size:12px; color:var(--muted); margin-top:4px; }
.header-actions { display:flex; align-items:center; gap:12px; }

/* Alerts */
.alert {
  padding:12px 16px; margin-bottom:20px;
  font-size:13px; border-left:3px solid;
  font-family:'JetBrains Mono',monospace;
}
.alert-success { background:rgba(76,175,125,0.07); border-color:var(--green); color:var(--green); }
.alert-error   { background:rgba(232,91,74,0.07);  border-color:var(--red);   color:var(--red); }
.alert-warning { background:rgba(212,168,83,0.07); border-color:var(--amber); color:var(--amber); }

/* ── KPI CARDS ────────────────────────────────────────────────── */
.kpi-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px; }
.kpi-grid-3 { grid-template-columns:repeat(3,1fr); }
.kpi-grid-5 { grid-template-columns:repeat(5,1fr); }
.kpi-card {
  background:var(--bg2); border:1px solid var(--border);
  padding:22px 22px 20px; position:relative; overflow:hidden;
  transition:border-color var(--t-med) var(--ease), transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
  cursor:default;
}
.kpi-card:hover {
  border-color:var(--border2);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}
.kpi-card::before {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--orange);
}
.kpi-card.green::before { background:var(--green); }
.kpi-card.amber::before { background:var(--amber); }
.kpi-card.blue::before  { background:var(--blue); }
.kpi-card.red::before   { background:var(--red); }
.kpi-card::after {
  content:''; position:absolute; bottom:-30px; right:-30px;
  width:100px; height:100px;
  background:radial-gradient(circle, rgba(232,98,42,0.07) 0%, transparent 70%);
  pointer-events:none;
}
.kpi-card.green::after { background:radial-gradient(circle, rgba(76,175,125,0.07) 0%, transparent 70%); }
.kpi-card.amber::after { background:radial-gradient(circle, rgba(212,168,83,0.07) 0%, transparent 70%); }
.kpi-card.blue::after  { background:radial-gradient(circle, rgba(74,144,217,0.07) 0%, transparent 70%); }
.kpi-card.red::after   { background:radial-gradient(circle, rgba(232,91,74,0.07) 0%, transparent 70%); }

.kpi-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; }
.kpi-label {
  font-size:10px; color:var(--muted); letter-spacing:1.5px;
  text-transform:uppercase; font-family:'JetBrains Mono',monospace;
}
.kpi-icon {
  font-size:16px; opacity:0.6;
  width:34px; height:34px;
  background:rgba(232,98,42,0.1);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.kpi-card.green .kpi-icon { background:rgba(76,175,125,0.1); }
.kpi-card.amber .kpi-icon { background:rgba(212,168,83,0.1); }
.kpi-card.blue  .kpi-icon { background:rgba(74,144,217,0.1); }

.kpi-value {
  font-family:'Bebas Neue',sans-serif; font-size:44px;
  color:var(--cream); line-height:1; margin-bottom:8px;
  letter-spacing:1px;
}
.kpi-delta { font-size:11px; color:var(--green); font-family:'JetBrains Mono',monospace; }
.kpi-delta.neg { color:var(--red); }

/* ── DASHBOARD GRID ───────────────────────────────────────────── */
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.dash-card {
  background:var(--bg2); border:1px solid var(--border);
  padding:22px;
  transition:border-color var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
  background-image:none;
}
.dash-card:hover { border-color:var(--border2); box-shadow:var(--shadow-sm); }
.dash-card.span2 { grid-column:span 2; }

.card-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.card-title {
  font-size:10px; font-family:'JetBrains Mono',monospace;
  color:var(--muted); letter-spacing:1.5px; text-transform:uppercase;
}
.card-link {
  font-size:12px; color:var(--text2); text-decoration:none;
  font-family:'JetBrains Mono',monospace; transition:color var(--t-fast) var(--ease);
}
.card-link:hover { color:var(--orange); }
.card-total { font-size:13px; color:var(--text2); }
.live-badge { color:var(--green); font-size:10px; margin-left:8px; }
.chart-wrap { position:relative; }

/* Printer list */
.printer-list { display:flex; flex-direction:column; gap:8px; }
.printer-row {
  display:flex; align-items:center; gap:12px;
  padding:10px 12px; background:var(--bg3);
  border:1px solid var(--border);
  transition:border-color var(--t-fast) var(--ease);
  border-left:2px solid transparent;
}
.printer-row:hover { border-color:var(--border2); }
.pstatus { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.pstatus-online  { background:var(--green); box-shadow:0 0 8px rgba(76,175,125,0.6); animation:pulse 2s infinite; }
.pstatus-idle    { background:var(--amber); }
.pstatus-offline { background:var(--muted); }
.pstatus-error   { background:var(--red); box-shadow:0 0 6px rgba(232,91,74,0.5); }
.pinfo { flex:1; min-width:0; }
.pname { font-size:13px; font-weight:600; color:var(--cream); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pdetail { font-size:10px; color:var(--muted); font-family:'JetBrains Mono',monospace; margin-top:2px; }
.pprogress { width:90px; }
.pbar { height:3px; background:var(--border); overflow:hidden; margin-bottom:3px; border-radius:2px; }
.pbar-fill { height:100%; background:var(--orange); transition:width var(--t-med) var(--ease); border-radius:2px; }
.pbar-large { height:5px; margin-bottom:4px; }
.pbar-mini  { height:2px; margin-top:4px; }
.fill-danger { background:var(--red); }
.ppct { font-size:10px; color:var(--muted); font-family:'JetBrains Mono',monospace; text-align:right; }
.empty-state-sm { padding:24px; text-align:center; color:var(--muted); font-size:13px; }
.empty-state-sm a { color:var(--orange); text-decoration:none; }
.empty-state-sm a:hover { text-decoration: underline; }

/* Order list mini */
.order-list-mini { display:flex; flex-direction:column; gap:6px; }
.order-row-mini {
  display:flex; align-items:center; gap:10px;
  padding:9px 12px; background:var(--bg3);
  border:1px solid var(--border); text-decoration:none;
  transition:border-color var(--t-fast) var(--ease);
  font-size:12px;
  border-left:2px solid transparent;
}
.order-row-mini:hover { border-color:var(--border2); border-left-color:var(--orange); }
.order-id-mini {
  color:var(--orange); font-size:11px; width:54px; flex-shrink:0;
  font-family:'JetBrains Mono',monospace;
}
.order-client { flex:1; color:var(--cream); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-amount-mini {
  color:var(--amber); font-weight:600; white-space:nowrap;
  font-family:'JetBrains Mono',monospace;
}

/* ── BADGES ───────────────────────────────────────────────────── */
.badge {
  font-size:10px; padding:3px 8px; letter-spacing:0.5px;
  font-weight:700; text-transform:uppercase;
  font-family:'JetBrains Mono',monospace; white-space:nowrap;
}
.badge-quote      { background:rgba(212,168,83,0.10); color:#d4a853;       border:1px solid rgba(212,168,83,0.25); }
.badge-new        { background:rgba(232,98,42,0.12);  color:var(--orange); border:1px solid rgba(232,98,42,0.25); }
.badge-pending    { background:rgba(212,168,83,0.12); color:var(--amber);  border:1px solid rgba(212,168,83,0.25); }
.badge-in_progress{ background:rgba(76,175,125,0.12); color:var(--green);  border:1px solid rgba(76,175,125,0.25); }
.badge-done       { background:rgba(74,144,217,0.12); color:var(--blue);   border:1px solid rgba(74,144,217,0.25); }
.badge-cancelled      { background:rgba(122,106,88,0.12); color:var(--muted);  border:1px solid rgba(122,106,88,0.25); }
.badge-subcontracted  { background:rgba(74,144,217,0.08); color:#6fa8dc;       border:1px solid rgba(74,144,217,0.2); }
.badge-shopify        { background:rgba(150,191,72,0.10); color:#a0cf5a;        border:1px solid rgba(150,191,72,0.25); }
.badge-lg             { font-size:12px; padding:5px 12px; }
.badge-inv-draft   { background:rgba(122,106,88,0.12); color:var(--muted); border:1px solid rgba(122,106,88,0.25); }
.badge-inv-sent    { background:rgba(212,168,83,0.12); color:var(--amber); border:1px solid rgba(212,168,83,0.25); }
.badge-inv-paid    { background:rgba(76,175,125,0.12); color:var(--green); border:1px solid rgba(76,175,125,0.25); }
.badge-inv-overdue { background:rgba(232,91,74,0.12);  color:var(--red);   border:1px solid rgba(232,91,74,0.25); }
.badge-material {
  font-size:10px; font-family:'JetBrains Mono',monospace;
  color:var(--orange); background:rgba(232,98,42,0.1);
  padding:2px 6px; border:1px solid rgba(232,98,42,0.2);
}

/* ── TABLES ───────────────────────────────────────────────────── */
.table-wrap { background:var(--bg2); border:1px solid var(--border); overflow:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:13px; }
.data-table th {
  padding:11px 16px; font-size:10px; font-family:'JetBrains Mono',monospace;
  color:var(--muted); letter-spacing:1.5px; text-transform:uppercase;
  text-align:left; border-bottom:1px solid var(--border);
  background:var(--bg3); font-weight:400;
}
.data-table td {
  padding:13px 16px; border-bottom:1px solid var(--border);
  color:var(--text); vertical-align:middle; transition:background var(--t-fast) var(--ease);
}
.data-table tr:last-child td { border-bottom:none; }
.data-table tr:hover td { background:var(--bg3); }
.data-table tr:hover td:first-child { border-left:2px solid var(--orange); padding-left:14px; }
.data-table-sm td { padding:8px 14px; }
.text-right { text-align:right; }
.text-center { text-align:center; }
.text-muted { color:var(--text2); }
.text-danger { color:var(--red); }
.empty-cell { padding:40px !important; text-align:center; color:var(--muted); font-style:italic; }
.row-alert td { border-left:2px solid var(--red); }
.alert-tag { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--red); margin-left:8px; }
.actions-cell { white-space:nowrap; }
.color-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; border:1px solid var(--border); vertical-align:middle; }

/* ── FILTERS ──────────────────────────────────────────────────── */
.filters-bar { margin-bottom:20px; }
.filters-form { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.filter-search { display:flex; gap:8px; align-items:center; flex:1; }
.filter-select {
  background:var(--bg2); border:1px solid var(--border); color:var(--text);
  font-family:'JetBrains Mono',monospace; font-size:12px;
  padding:8px 10px; cursor:pointer; transition:border-color var(--t-fast) var(--ease);
}
.filter-select:focus { outline:none; border-color:var(--orange); }
.filter-select-xs {
  background:var(--bg2); border:1px solid var(--border); color:var(--text);
  font-family:'JetBrains Mono',monospace; font-size:11px;
  padding:4px 6px; cursor:pointer;
}
.filter-select-xs:focus { outline:none; border-color:var(--orange); }

/* ── FORMS ────────────────────────────────────────────────────── */
.form-group { margin-bottom:18px; }
.form-label {
  display:block; font-size:10px; font-family:'JetBrains Mono',monospace;
  color:var(--muted); letter-spacing:1.5px; text-transform:uppercase;
  margin-bottom:7px;
}
.form-input {
  width:100%; padding:11px 14px;
  background:var(--bg3); border:1px solid var(--border);
  color:var(--text); font-family:'DM Sans',sans-serif; font-size:14px;
  transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); -webkit-appearance:none;
}
.form-input:focus { outline:none; border-color:var(--orange); background:var(--bg4); }
.form-input::placeholder { color:var(--muted); }
select.form-input { cursor:pointer; }

.form-input-sm {
  flex:1; padding:9px 10px;
  background:var(--bg3); border:1px solid var(--border);
  color:var(--text); font-family:'DM Sans',sans-serif; font-size:13px;
  transition:border-color var(--t-fast) var(--ease);
}
.form-input-sm:focus { outline:none; border-color:var(--orange); }

.form-input-xs {
  width:80px; padding:8px 8px;
  background:var(--bg3); border:1px solid var(--border);
  color:var(--text); font-family:'JetBrains Mono',monospace; font-size:12px;
}
.form-input-xs:focus { outline:none; border-color:var(--orange); }
.form-row { display:flex; align-items:center; margin-bottom:16px; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text2); cursor:pointer; }
.form-check input { accent-color:var(--orange); }
.form-actions { display:flex; gap:10px; align-items:center; margin-top:20px; }
.inline-form {
  display:flex; gap:8px; align-items:center;
  padding-top:14px; border-top:1px solid var(--border); margin-top:14px;
}

/* Auth form */
.auth-form { display:flex; flex-direction:column; gap:0; }
.btn-auth {
  width:100%; padding:14px;
  background: linear-gradient(135deg, var(--orange) 0%, var(--orange2) 100%);
  border:none; color:white;
  font-family:'Bebas Neue',sans-serif; font-size:20px;
  letter-spacing:2px; cursor:pointer; transition:transform var(--t-med) var(--ease), opacity var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  margin-top:8px; box-shadow:0 4px 20px rgba(232,98,42,0.25);
}
.btn-auth:hover { opacity:0.92; transform:translateY(-1px); box-shadow:0 6px 24px rgba(232,98,42,0.35); }

/* ── BUTTONS ──────────────────────────────────────────────────── */
.btn-primary {
  padding:10px 22px;
  background: linear-gradient(135deg, var(--orange) 0%, var(--orange2) 100%);
  border:none; color:white; font-family:'DM Sans',sans-serif;
  font-size:14px; font-weight:600; cursor:pointer;
  transition:transform var(--t-med) var(--ease), opacity var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
  letter-spacing:0.3px;
  text-decoration:none; display:inline-block;
  box-shadow:0 2px 12px rgba(232,98,42,0.2);
}
.btn-primary:hover { opacity:0.9; transform:translateY(-1px); box-shadow:0 4px 20px rgba(232,98,42,0.3); }

.btn-ghost {
  padding:9px 18px; background:transparent;
  border:1px solid var(--border); color:var(--text2);
  font-family:'DM Sans',sans-serif; font-size:13px;
  cursor:pointer; transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
  text-decoration:none; display:inline-block;
}
.btn-ghost:hover { border-color:var(--border2); color:var(--cream); background:var(--bg3); }

.btn-danger {
  padding:9px 16px; background:transparent;
  border:1px solid rgba(232,91,74,0.2); color:var(--red);
  font-family:'DM Sans',sans-serif; font-size:13px;
  cursor:pointer; transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.btn-danger:hover { background:rgba(232,91,74,0.07); border-color:rgba(232,91,74,0.4); }
.btn-sm { padding:5px 12px; font-size:12px; }

/* ── MODALS ───────────────────────────────────────────────────── */
.modal {
  border:1px solid var(--border2); background:transparent;
  padding:0; max-width:560px; width:90%;
  box-shadow:var(--shadow-xl);
}
.modal::backdrop { background:rgba(0,0,0,0.78); backdrop-filter:blur(3px); }
.modal-box { background:var(--bg2); padding:30px; }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.modal-title { font-family:'Bebas Neue',sans-serif; font-size:28px; letter-spacing:1px; color:var(--cream); }
.modal-close { background:transparent; border:none; color:var(--muted); font-size:18px; cursor:pointer; padding:4px; transition:color var(--t-fast) var(--ease); }
.modal-close:hover { color:var(--red); }
.modal-form { display:flex; flex-direction:column; }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:22px; }
.modal-hint { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); padding:10px 12px; background:var(--bg3); border:1px solid var(--border); margin:8px 0; }

/* ── PRINTERS PAGE ────────────────────────────────────────────── */
.printers-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.printer-card {
  background:var(--bg2); border:1px solid var(--border);
  padding:22px; display:flex; flex-direction:column; gap:16px;
  transition:border-color var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.printer-card:hover { border-color:var(--border2); box-shadow:var(--shadow-sm); }
.pc-status-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.pc-status-label { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:1px; }
.pc-last-seen { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); margin-left:auto; }
.pc-name { font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:1px; color:var(--cream); }
.pc-model { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); margin-top:2px; }
.pc-progress-label { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); margin-bottom:6px; letter-spacing:1px; }
.pc-progress-pct { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text2); margin-top:4px; text-align:right; }
.pc-temps { display:flex; gap:16px; }
.pc-temp-label { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); letter-spacing:1px; }
.pc-temp-val { font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--cream); }
.pc-token-label { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); letter-spacing:1px; margin-bottom:6px; }
.pc-token-wrap { background:var(--bg3); border:1px solid var(--border); padding:8px 10px; overflow:hidden; }
.pc-token { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--orange); word-break:break-all; }
.pc-ip { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); min-height:1em; }
.pc-actions { display:flex; gap:8px; border-top:1px solid var(--border); padding-top:14px; margin-top:auto; }

/* ── DETAIL PAGES ─────────────────────────────────────────────── */
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.detail-form { display:flex; flex-direction:column; }
.detail-meta { margin-top:18px; border-top:1px solid var(--border); padding-top:16px; display:flex; flex-direction:column; gap:6px; }
.meta-row { display:flex; justify-content:space-between; font-size:12px; }
.meta-row .mono { color:var(--muted); font-size:11px; }
.invoice-linked { display:flex; flex-direction:column; gap:10px; }
.invoice-num { font-family:'Bebas Neue',sans-serif; font-size:28px; color:var(--cream); }
.invoice-meta { display:flex; align-items:center; gap:12px; }
.invoice-empty { display:flex; flex-direction:column; gap:12px; }

/* ── EMPTY STATES ─────────────────────────────────────────────── */
.empty-state {
  grid-column:1/-1; display:flex; flex-direction:column;
  align-items:center; padding:64px; text-align:center;
  background:var(--bg2); border:1px dashed var(--border);
}
.empty-icon { font-size:48px; margin-bottom:16px; opacity:0.3; }
.empty-title { font-family:'Bebas Neue',sans-serif; font-size:28px; color:var(--cream); margin-bottom:8px; }
.empty-desc { color:var(--text2); font-size:14px; margin-bottom:24px; max-width:400px; }

/* ── MARGIN ANALYSIS ──────────────────────────────────────────── */
.margin-section { margin-top:20px; }
.margin-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; }
.margin-title { font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:2px; color:var(--cream); }
.margin-sub { font-size:11px; color:var(--muted); margin-top:2px; }
.margin-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.margin-kpi-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:20px; }
.margin-kpi { background:var(--bg3); border:1px solid var(--border); padding:14px; }
.margin-kpi-label { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--muted); letter-spacing:1px; text-transform:uppercase; margin-bottom:6px; }
.margin-kpi-val { font-family:'Bebas Neue',sans-serif; font-size:26px; color:var(--text2); line-height:1; }
.margin-kpi-val.amber { color:var(--amber); }
.margin-gauge-block { margin-bottom:20px; }
.margin-gauge-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.margin-pct-val { font-family:'Bebas Neue',sans-serif; font-size:28px; color:var(--cream); }
.margin-gauge-bar { height:6px; background:var(--border); overflow:hidden; margin-bottom:6px; border-radius:3px; }
.margin-gauge-fill { height:100%; transition:width var(--t-med) var(--ease), background var(--t-med) var(--ease); background:var(--muted); border-radius:3px; }
.margin-gauge-fill.fill-ok    { background:var(--green); }
.margin-gauge-fill.fill-warn  { background:var(--amber); }
.margin-gauge-fill.fill-danger{ background:var(--red); }
.gauge-markers { display:flex; justify-content:space-between; }
.cost-breakdown { display:flex; flex-direction:column; gap:10px; }
.cost-row { display:flex; align-items:center; gap:10px; }
.cost-label { font-size:12px; color:var(--text2); width:120px; flex-shrink:0; }
.cost-bar-wrap { flex:1; height:4px; background:var(--border); overflow:hidden; border-radius:2px; }
.cost-bar { height:100%; background:var(--orange); transition:width var(--t-med) var(--ease); min-width:2px; border-radius:2px; }
.cost-bar-elec  { background:var(--blue); }
.cost-bar-labor { background:var(--amber); }
.cost-bar-depr  { background:var(--muted); }
.cost-val { font-size:12px; color:var(--text2); width:70px; text-align:right; flex-shrink:0; font-family:'JetBrains Mono',monospace; }
.margin-params-snap { background:var(--bg3); border:1px solid var(--border); padding:14px; margin-top:4px; }
.params-snap-label { font-size:10px; color:var(--muted); letter-spacing:1px; text-transform:uppercase; margin-bottom:10px; }
.params-snap-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.param-snap-item { display:flex; align-items:center; gap:6px; }
.param-snap-key { font-size:11px; color:var(--muted); width:72px; flex-shrink:0; }
.param-snap-input { width:64px; background:var(--bg2); border:1px solid var(--border); color:var(--orange); font-family:'JetBrains Mono',monospace; font-size:11px; padding:4px 6px; text-align:right; }
.param-snap-input:focus { outline:none; border-color:var(--orange); }
.param-snap-unit { font-size:10px; color:var(--muted); white-space:nowrap; }
.margin-empty-hint { margin-top:16px; padding:12px; background:var(--bg3); border:1px dashed var(--border); font-size:11px; color:var(--muted); text-align:center; }

/* Costs settings */
.costs-settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.settings-help-text { font-size:13px; color:var(--text2); margin-bottom:16px; }
.form-hint { font-size:11px; color:var(--muted); margin-top:5px; font-family:'JetBrains Mono',monospace; }
.sim-inputs { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.sim-result { background:var(--bg3); border:1px solid var(--border); padding:16px; }
.sim-breakdown { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.sim-row { display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--text2); padding:5px 0; border-bottom:1px solid var(--border); }
.sim-row:last-child { border-bottom:none; }
.sim-total { color:var(--cream); font-weight:600; }
.sim-margin { font-weight:600; }
.sim-gauge-wrap { margin-top:8px; }
.sim-pct-label { font-size:10px; color:var(--muted); font-family:'JetBrains Mono',monospace; letter-spacing:1px; text-transform:uppercase; margin-bottom:4px; }
.sim-pct-value { font-family:'Bebas Neue',sans-serif; font-size:36px; color:var(--cream); line-height:1; margin-bottom:8px; }
.sim-gauge-bar { height:6px; background:var(--border); overflow:hidden; border-radius:3px; }
.sim-gauge-fill { height:100%; transition:width var(--t-med) var(--ease), background var(--t-med) var(--ease); background:var(--muted); border-radius:3px; }
.sim-gauge-fill.fill-ok    { background:var(--green); }
.sim-gauge-fill.fill-warn  { background:var(--amber); }
.sim-gauge-fill.fill-danger{ background:var(--red); }

/* ── TRACKING LINK ────────────────────────────────────────────── */
.tracking-link-block { display:flex; flex-direction:column; gap:10px; }
.tracking-url-row { display:flex; gap:8px; align-items:center; }
.tracking-url-input { flex:1; font-size:11px; cursor:default; color:var(--orange); }
.tracking-meta { font-size:11px; }
.tracking-empty { display:flex; flex-direction:column; gap:12px; }

/* ── GANTT PLANNING ───────────────────────────────────────────── */
.gantt-legend { display:flex; gap:16px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.gantt-legend-item { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text2); font-family:'JetBrains Mono',monospace; }
.gantt-legend-dot { width:10px; height:10px; flex-shrink:0; }
.dot-printing { background:var(--green); }
.dot-queued   { background:var(--amber); }
.dot-done     { background:var(--blue); }
.dot-conflict { background:var(--red); }
.gantt-now-legend span { width:2px; height:14px; background:var(--orange); display:inline-block; vertical-align:middle; }

.gantt-wrap { display:flex; align-items:stretch; border-top:1px solid var(--border); border-left:1px solid var(--border); border-right:1px solid var(--border); background:var(--bg2); overflow:hidden; }
.gantt-label-col-header { width:180px; flex-shrink:0; padding:10px 12px; font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); letter-spacing:1px; text-transform:uppercase; border-right:1px solid var(--border); background:var(--bg3); }
.gantt-scroll-header { flex:1; overflow:hidden; }
.gantt-time-header { position:relative; height:40px; background:var(--bg3); border-bottom:1px solid var(--border); }
.gantt-day-col { position:absolute; top:0; bottom:0; }
.gantt-day-label { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--cream); letter-spacing:0.5px; padding:6px 8px; border-right:1px solid var(--border); white-space:nowrap; }
.gantt-hour-mark { position:absolute; top:22px; font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--muted); padding-left:4px; }
.gantt-body-wrap { display:flex; align-items:stretch; border:1px solid var(--border); background:var(--bg2); max-height:400px; }
.app-body.is-fullscreen .gantt-body-wrap { max-height: calc(100vh - 150px) !important; }

.gantt-labels-col { width:180px; flex-shrink:0; overflow:hidden; border-right:1px solid var(--border); }
.gantt-printer-label { display:flex; align-items:center; gap:8px; height:64px; padding:0 12px; border-bottom:1px solid var(--border); }
.gantt-printer-name { font-size:12px; color:var(--cream); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gantt-scroll-body { flex:1; overflow:auto; }
.gantt-rows { position:relative; }
.gantt-row { position:relative; height:64px; border-bottom:1px solid var(--border); }
.gantt-day-sep { position:absolute; top:0; bottom:0; width:1px; background:var(--border); z-index:0; }
.gantt-job { position:absolute; top:12px; height:40px; display:flex; align-items:center; padding:0 10px; overflow:hidden; z-index:2; cursor:default; border:1px solid transparent; }
.gantt-job-label { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:500; position:relative; z-index:2; pointer-events:none; }
.gantt-job-printing { background:rgba(76,175,125,0.18); border-color:rgba(76,175,125,0.5); color:var(--green); }
.gantt-job-queued { background:rgba(212,168,83,0.15); border-color:rgba(212,168,83,0.4); color:var(--amber); border-style:dashed; }
.gantt-job-done { background:rgba(74,144,217,0.12); border-color:rgba(74,144,217,0.3); color:var(--blue); }
.gantt-job-failed { background:rgba(232,91,74,0.12); border-color:rgba(232,91,74,0.3); color:var(--red); }
.gantt-job-conflict { box-shadow:0 0 0 2px var(--red) inset !important; border-color:var(--red) !important; }
.gantt-job-progress { position:absolute; left:0; top:0; bottom:0; background:rgba(76,175,125,0.12); z-index:1; transition:width var(--t-med) var(--ease); }
.gantt-cancel-form { position:absolute; right:4px; top:50%; transform:translateY(-50%); }
.gantt-cancel-btn { background:transparent; border:none; color:currentColor; font-size:10px; cursor:pointer; opacity:0.5; padding:2px 4px; }
.gantt-cancel-btn:hover { opacity:1; color:var(--red); }
.gantt-now-line { position:absolute; top:0; bottom:0; width:2px; background:var(--orange); z-index:5; pointer-events:none; }
.gantt-now-line::before { content:''; position:absolute; top:0; left:-3px; width:8px; height:8px; background:var(--orange); border-radius:50%; }

/* ── ANIMATIONS ───────────────────────────────────────────────── */
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }
@keyframes fadeIn { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
.app-content > * { animation:fadeIn 0.2s ease-out; }

/* ── RESPONSIVE ───────────────────────────────────────────────── */
@media (max-width: 900px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); }
  .app-main { margin-left:0; }
  .sidebar-toggle { display:block; }
  .kpi-grid { grid-template-columns:repeat(2,1fr); }
  .kpi-grid-5 { grid-template-columns:repeat(3,1fr); }
  .dashboard-grid { grid-template-columns:1fr; }
  .dash-card.span2 { grid-column:auto; }
  .detail-grid { grid-template-columns:1fr; }
  .printers-grid { grid-template-columns:1fr; }
  .margin-grid { grid-template-columns:1fr; }
  .costs-settings-grid { grid-template-columns:1fr; }
  .margin-kpi-row { grid-template-columns:1fr 1fr 1fr; }
  .params-snap-grid { grid-template-columns:1fr; }
  .gantt-label-col-header, .gantt-labels-col { width:130px; }
}
@media (max-width: 600px) {
  .kpi-grid { grid-template-columns:1fr 1fr; }
  .app-content { padding:16px; }
  .page-header { flex-direction:column; gap:12px; }
}

/* ═══════════════════════════════════════════════════════════════
   STOCK — Prédictions de consommation
   ═══════════════════════════════════════════════════════════════ */
.alert-predict {
  background: rgba(212,168,83,0.07); border: 1px solid rgba(212,168,83,0.3);
  color: var(--amber); padding: 11px 16px; margin-bottom: 16px;
  font-size: 13px; border-left:3px solid var(--amber);
}
.predict-badge {
  display: inline-block; padding: 2px 8px;
  font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700;
  letter-spacing: 0.5px;
}
.predict-urgent { color: var(--red);   background: rgba(232,91,74,0.1);   border: 1px solid rgba(232,91,74,0.3); }
.predict-warn   { color: var(--amber); background: rgba(212,168,83,0.09); border: 1px solid rgba(212,168,83,0.28); }
.predict-ok     { color: var(--green); background: rgba(76,175,125,0.09); border: 1px solid rgba(76,175,125,0.28); }
.predict-rate   { font-size: 10px; color: var(--muted); margin-top: 2px; }
.predict-no-data { color: var(--muted); font-size: 13px; }

/* ═══════════════════════════════════════════════════════════════
   CATALOGUE DE PIÈCES
   ═══════════════════════════════════════════════════════════════ */
.catalog-empty {
  text-align: center; padding: 80px 32px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.catalog-empty-icon { font-size: 48px; opacity: 0.35; }
.catalog-empty-title { font-family: 'Bebas Neue', sans-serif; font-size: 28px; letter-spacing: 2px; color: var(--cream); }
.catalog-empty-sub { font-size: 14px; color: var(--text2); max-width: 420px; line-height: 1.6; }

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}
.catalog-card {
  background: var(--bg2); border: 1px solid var(--border);
  padding: 22px; display: flex; flex-direction: column; gap: 14px;
  transition: border-color var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.catalog-card:hover { border-color:rgba(232,98,42,0.3); box-shadow:0 4px 16px rgba(232,98,42,0.06); }

.catalog-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.catalog-card-name { font-family: 'Bebas Neue', sans-serif; font-size: 20px; letter-spacing: 1px; color: var(--cream); line-height: 1.1; }
.catalog-card-desc { font-size: 12px; color: var(--text2); margin-top: 4px; }
.catalog-card-actions { display: flex; gap: 6px; flex-shrink: 0; }

.catalog-card-specs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.catalog-color { font-size: 12px; color: var(--text2); padding: 2px 8px; border: 1px solid var(--border); }
.catalog-spec { font-size: 11px; color: var(--muted); padding: 2px 8px; background: var(--bg3); border: 1px solid var(--border); }

.catalog-card-footer {
  display: flex; justify-content: space-between; align-items: baseline;
  border-top: 1px solid var(--border); padding-top: 12px;
}
.catalog-price { font-family: 'Bebas Neue', sans-serif; font-size: 26px; color: var(--orange); letter-spacing: 1px; }
.catalog-price-unit { font-family: 'DM Sans', sans-serif; font-size: 13px; color: var(--muted); margin-left: 4px; }
.catalog-usage { font-size: 11px; color: var(--muted); }

.catalog-notes {
  font-size: 11px; color: var(--muted); padding: 8px 10px;
  background: var(--bg3); border-left: 2px solid var(--border);
}
.catalog-order-btn { width: 100%; text-align: center; margin-top: 4px; }
.catalog-order-item-name { font-size: 13px; color: var(--text2); padding: 8px 0 4px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.catalog-order-total { font-family: 'Bebas Neue', sans-serif; font-size: 24px; color: var(--orange); padding-top: 8px; }

@media (max-width: 900px) { .catalog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .catalog-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════════
   MODES : WIDE + FULLSCREEN
   - is-wide      : garde sidebar, retire la limite 1440px
   - is-fullscreen: cache sidebar, content plein écran
   ═══════════════════════════════════════════════════════════════ */

.app-body.is-wide .app-content{
  max-width: none !important;
}

/* Fullscreen (cockpit) */
.app-body.is-fullscreen {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
}
.app-body.is-fullscreen .sidebar {
  transform: translateX(-100%) !important;
}
.app-body.is-fullscreen .app-main {
  margin-left: 0 !important;
}
.app-body.is-fullscreen .app-content{
  max-width:none !important;
  width:100% !important;
  padding:16px !important;
}

/* Planning/Gantt: prend plus de place en fullscreen */
.app-body.is-fullscreen .gantt-body-wrap{
  max-height: calc(100vh - 140px) !important;
}

/* Boutons topbar un peu plus “premium” */
.app-topbar .btn-ghost.btn-sm{
  padding: 6px 10px;
  border-color: rgba(58,48,37,0.9);
}
.app-topbar .btn-ghost.btn-sm:hover{
  border-color: rgba(232,98,42,0.35);
}

/* Focus plus visible */
:focus-visible{
  outline:none;
  box-shadow: 0 0 0 2px rgba(232,98,42,0.18), 0 0 0 3px rgba(232,98,42,0.35);
}

/* Scrollbar un poil plus visible */
::-webkit-scrollbar { width:7px; height:7px; }
::-webkit-scrollbar-thumb { background: rgba(58,48,37,0.95); }
::-webkit-scrollbar-thumb:hover { background: rgba(122,106,88,0.95); }