:root {
  --cal-bg: #ffffff;
  --cal-header-bg: #f8fafc;
  --cal-border: #e2e8f0;
  --cal-text-main: #0f172a;
  --cal-text-muted: #64748b;
  --cal-today-bg: #b6f25e;
  --cal-selected-bg: #123c4a;
  --cal-selected-text: #ffffff;
  
  --ev-op-bg: #eff6ff;
  --ev-op-border: #bfdbfe;
  --ev-op-text: #1e40af;
  
  --ev-prev-bg: #f5f3ff;
  --ev-prev-border: #ddd6fe;
  --ev-prev-text: #5b21b6;
  
  --ev-rem-bg: #fffbeb;
  --ev-rem-border: #fef3c7;
  --ev-rem-text: #92400e;
  
  --ev-critical-bg: #fef2f2;
  --ev-critical-border: #fecaca;
  --ev-critical-text: #991b1b;
}

.dark {
  --cal-bg: var(--surface);
  --cal-header-bg: var(--surface-secondary);
  --cal-border: var(--border-soft);
  --cal-text-main: var(--text);
  --cal-text-muted: var(--muted);
  --cal-today-bg: var(--accent);
  --cal-selected-bg: var(--accent-strong);
  --cal-selected-text: #000;
  
  --ev-op-bg: rgba(59, 130, 246, 0.1);
  --ev-op-border: rgba(59, 130, 246, 0.2);
  --ev-op-text: #60a5fa;
  
  --ev-prev-bg: rgba(139, 92, 246, 0.1);
  --ev-prev-border: rgba(139, 92, 246, 0.2);
  --ev-prev-text: #a78bfa;
  
  --ev-rem-bg: rgba(245, 158, 11, 0.1);
  --ev-rem-border: rgba(245, 158, 11, 0.2);
  --ev-rem-text: #fbbf24;
  
  --ev-critical-bg: rgba(239, 68, 68, 0.1);
  --ev-critical-border: rgba(239, 68, 68, 0.2);
  --ev-critical-text: #f87171;
}

/* Premium typography classes */
.font-inter { font-family: 'Inter', sans-serif; }
.font-poppins { font-family: 'Poppins', sans-serif; }
.font-montserrat { font-family: 'Montserrat', sans-serif; }
.font-roboto { font-family: 'Roboto', sans-serif; }
.font-dm { font-family: 'DM Sans', sans-serif; }
.font-grotesk { font-family: 'Space Grotesk', sans-serif; }

/* ─── LIORA RADIUS SYSTEM ──────────────────────────────────────────────── */
:root {
  --radius-xs: 10px;
  --radius-sm: 14px;
  --radius-md: 18px;
  --radius-lg: 22px;
  --radius-xl: 24px;
  --radius-2xl: 28px;
  --radius-pill: 999px;
}
* {box-sizing:border-box;margin:0;padding:0}
html, body, #root { width: 100%; max-width: 100%; overflow-x: hidden; }
body{font-family:'Inter', sans-serif;background:var(--bg);color:var(--text);letter-spacing:-0.015em}
.dark body { background: var(--bg); color: var(--text); }

::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}
.dark ::-webkit-scrollbar-thumb{background:#475569}

.sidebar-item{display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--sidebar-text);transition:all .2s ease-out;white-space:nowrap}
.sidebar-item:hover{background:var(--hover-bg, rgba(255,255,255,0.05));color:var(--sidebar-text-strong)}
.sidebar-item.active{background:var(--sidebar-active-soft, #B6F25E);color:var(--sidebar-active, #0A2129);font-weight:600}
.dark .sidebar-item.active{background:var(--sidebar-active-soft);color:var(--sidebar-active);border-left: 3px solid var(--sidebar-active);}
.sidebar-item svg{width:18px;height:18px;flex-shrink:0}

.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease-out;white-space:nowrap}
.btn-primary:hover{transform:translateY(-1px)}
.btn-secondary{background:var(--surface-secondary);color:var(--text-secondary);border:1px solid var(--border-soft)}.btn-secondary:hover{background:var(--border-soft)}
.btn-danger{background:#fee2e2;color:#dc2626}.btn-danger:hover{background:#fecaca}
.dark .btn-danger{background:rgba(239, 68, 68, 0.1);color:#f87171}.dark .btn-danger:hover{background:rgba(239, 68, 68, 0.2)}
.btn-success{background:#dcfce7;color:#16a34a}.btn-success:hover{background:#bbf7d0}
.dark .btn-success{background:rgba(34, 197, 94, 0.1);color:#4ade80}.dark .btn-success:hover{background:rgba(34, 197, 94, 0.2)}
.input{width:100%;padding:10px 14px;border:1.5px solid var(--border-soft);border-radius:var(--radius-md);font-size:14px;outline:none;background:var(--surface);color:var(--text);transition:border-color .2s ease-out, box-shadow .2s ease-out;font-family:inherit}
.dark .input { background: var(--surface-secondary); border-color: var(--border); color: var(--text); }
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(182,242,94,.15)}
.select{width:100%;padding:10px 14px;border:1.5px solid var(--border-soft);border-radius:var(--radius-md);font-size:14px;outline:none;background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .2s ease-out, box-shadow .2s ease-out;font-family:inherit}
.dark .select { background: var(--surface-secondary); border-color: var(--border); color: var(--text); }
.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(182,242,94,.15)}
label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:5px}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-height:calc(100vh - 40px);box-shadow:0 20px 60px rgba(0,0,0,.15);display:flex;flex-direction:column;overflow:hidden}
.dark .modal { background: var(--surface); color: var(--text); box-shadow:0 20px 60px rgba(0,0,0,.5); }
.table{width:100%;border-collapse:collapse}
.table th{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-soft);white-space:nowrap;background:var(--surface-secondary)}
.table td{padding:12px 14px;font-size:14px;border-bottom:1px solid var(--border-soft);color:var(--text)}
.dark .table td { border-bottom-color: var(--border-soft); color: var(--text-secondary); }
.table tr:last-child td{border-bottom:none}
.table tr:hover td{background:var(--hover-bg, rgba(255,255,255,0.02))}
.kpi-card{background:var(--surface);border-radius:16px;padding:20px;box-shadow:var(--shadow-sm);transition:transform .2s ease-out, box-shadow .2s ease-out}
.dark .kpi-card { background: var(--surface); border: 1px solid var(--border-soft); }
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.04),0 2px 6px rgba(0,0,0,.04)}
.tire-pos{cursor:pointer;transition:all .2s ease-out}
.tire-pos:hover .tire-circle{stroke-width:3;stroke:#B6F25E}
.tire-mounted .tire-circle{fill:#123C4A}
.tire-empty .tire-circle{fill:#F5F8F7;stroke:#6B7A80}
.tire-drag-over .tire-circle{fill:#eefce0;stroke:#B6F25E;stroke-width:3}

.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.app-boot-error{padding:24px;font-family:sans-serif;color:#b91c1c}
/* ─── MOBILE RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:768px){
  .desktop-sidebar{display:none!important}
  .mobile-bottom-nav{display:flex!important}
  .mobile-drawer-overlay{display:block!important}
  .modal-overlay{padding:0;align-items:flex-end}
  .modal{border-radius:20px 20px 0 0;max-height:95vh}
  .kpi-card{padding:14px}
  .p-6{padding:16px!important}
  .grid-cols-4{grid-template-columns:repeat(2,1fr)!important}
  .grid-cols-3{grid-template-columns:1fr!important}
  .grid-cols-2{grid-template-columns:1fr!important}
  .md\:grid-cols-4{grid-template-columns:1fr!important}
  .md\:grid-cols-3{grid-template-columns:1fr!important}
  .kanban-grid{grid-template-columns:1fr!important}
  .flex-wrap-mobile{flex-wrap:wrap}
  .w-40{width:100%!important}
  .table th,.table td{padding:8px 10px;font-size:12px}
  main.flex-1{padding-bottom:70px}
}
@media(min-width:769px){
  .mobile-bottom-nav{display:none!important}
  .mobile-drawer-overlay{display:none!important}
}
.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#123C4A;z-index:40;padding:4px 0 env(safe-area-inset-bottom,4px);border-top:1px solid #0A2129}
.mobile-drawer{position:fixed;bottom:60px;left:0;right:0;background:#0A2129;z-index:39;border-radius:20px 20px 0 0;max-height:50vh;overflow-y:auto;transform:translateY(100%);transition:transform .25s ease-out}
.mobile-drawer.open{transform:translateY(0)}

.btn { transition: all 150ms ease-out; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary { background: #123C4A; color: #fff; }
.btn-primary:hover { background: #0A2129; }
.card { background: #fff; border-radius: var(--radius-lg); box-shadow: 0 4px 12px rgba(0,0,0,.03), 0 1px 3px rgba(0,0,0,.05); transition: all 200ms ease-out; }
.dark .card { background: #1e293b; }
.card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04); }

.calendar-container {
  background: var(--cal-bg);
  color: var(--cal-text-main);
}
.calendar-border { border-color: var(--cal-border); }

.event-op { background: var(--ev-op-bg); border-color: var(--ev-op-border); color: var(--ev-op-text); }
.event-prev { background: var(--ev-prev-bg); border-color: var(--ev-prev-border); color: var(--ev-prev-text); }
.event-rem { background: var(--ev-rem-bg); border-color: var(--ev-rem-border); color: var(--ev-rem-text); }
.event-critical { background: var(--ev-critical-bg); border-color: var(--ev-critical-border); color: var(--ev-critical-text); }

.scrollbar-hide::-webkit-scrollbar { display: none; }
.custom-scrollbar::-webkit-scrollbar { width: 4px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.1); border-radius: 10px; }
.dark .custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); }

@keyframes fadeInSlide {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in { animation: fadeInSlide 200ms ease-out forwards; opacity: 0; }
.stagger-1 { animation-delay: 50ms; }
.stagger-2 { animation-delay: 100ms; }
.stagger-3 { animation-delay: 150ms; }
.stagger-4 { animation-delay: 200ms; }

/* ─── LIORA DESIGN SYSTEM V2 ─────────────────────────────────────────────── */

/* Modal Nova OS — tamanho grande */
.modal-os-nova {
  max-width: 860px;
  width: 100%;
}
.modal-os-nova .modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--border-soft, #edf2f0);
  flex-shrink: 0;
}
.modal-os-nova .modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 22px 24px;
}
.modal-os-nova .modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid var(--border-soft, #edf2f0);
  background: color-mix(in srgb, var(--surface-secondary, #f8faf9) 80%, white);
  flex-shrink: 0;
}

/* ─── TIRES REFACTOR ──────────────────────────────────────────────────────── */
.tires-page-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 20px;
  padding: 22px 24px 24px;
  min-height: 100%;
  align-items: start;
}
@media (max-width: 900px) {
  .tires-page-layout {
    grid-template-columns: 1fr;
  }
}
.tires-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 18px;
  max-height: calc(100vh - 120px);
}
.tires-sidebar-card {
  background: var(--card, #fff);
  border: 1px solid var(--border-soft, #edf2f0);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(16,32,39,.05);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.tires-sidebar-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--border-soft, #edf2f0);
  background: linear-gradient(180deg, var(--surface, #fff), var(--surface-secondary, #f8faf9));
  flex-shrink: 0;
}
.tires-sidebar-card__title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted, #7b8b91);
}
.tires-sidebar-card__body {
  padding: 12px;
  overflow-y: auto;
  flex: 1;
  max-height: 220px;
}
.tires-stock-item {
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid var(--border-soft, #edf2f0);
  background: var(--surface-secondary, #f8faf9);
  cursor: grab;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
  margin-bottom: 8px;
}
.tires-stock-item:last-child { margin-bottom: 0; }
.tires-stock-item:hover {
  border-color: color-mix(in srgb, #9eea3d 40%, var(--border-soft,#edf2f0));
  background: color-mix(in srgb, #ecffd8 60%, white);
  box-shadow: 0 2px 8px rgba(16,32,39,.06);
}
.tires-stock-item.is-dragging {
  border-color: #9eea3d;
  background: #ecffd8;
  box-shadow: 0 4px 16px rgba(16,32,39,.12);
  opacity: .85;
}
.tires-stock-item__code {
  font-size: 12px;
  font-weight: 700;
  color: var(--text, #102027);
}
.tires-stock-item__meta {
  margin-top: 3px;
  font-size: 11px;
  color: var(--muted, #7b8b91);
}
.tires-stock-empty {
  padding: 20px 12px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.tires-vehicle-item {
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid var(--border-soft, #edf2f0);
  background: var(--surface-secondary, #f8faf9);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
  margin-bottom: 8px;
}
.tires-vehicle-item:last-child { margin-bottom: 0; }
.tires-vehicle-item:hover {
  border-color: var(--border, #dce5e2);
  background: var(--surface, #fff);
}
.tires-vehicle-item.is-selected {
  border-color: #123c4a;
  background: color-mix(in srgb, #ecffd8 50%, white);
  box-shadow: 0 2px 10px rgba(18,60,74,.12);
}
.tires-vehicle-item__plate {
  font-size: 13px;
  font-weight: 800;
  color: var(--text, #102027);
}
.tires-vehicle-item__meta {
  margin-top: 2px;
  font-size: 11px;
  color: var(--muted, #7b8b91);
}
.tires-main-card {
  background: var(--card, #fff);
  border: 1px solid var(--border-soft, #edf2f0);
  border-radius: 22px;
  box-shadow: 0 1px 2px rgba(16,32,39,.05);
  overflow: hidden;
}
.tires-main-header {
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--border-soft, #edf2f0);
  background: linear-gradient(180deg, var(--surface, #fff), var(--surface-secondary, #f8faf9));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.tires-main-body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0;
  min-height: 480px;
}
@media (max-width: 1100px) {
  .tires-main-body { grid-template-columns: 1fr; }
}
.tires-chassis-panel {
  padding: 24px 20px;
  border-right: 1px solid var(--border-soft, #edf2f0);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  background: linear-gradient(180deg, var(--surface-secondary,#f8faf9), var(--surface,#fff));
  min-width: 260px;
}
.tires-chassis-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted, #7b8b91);
}
.tires-mounted-panel {
  padding: 20px 22px;
  overflow-y: auto;
  max-height: 560px;
}
.tires-mounted-title {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted, #7b8b91);
  margin-bottom: 14px;
}
.tires-mounted-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--border-soft, #edf2f0);
  background: var(--surface-secondary, #f8faf9);
  margin-bottom: 10px;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.tires-mounted-item:hover {
  border-color: var(--border, #dce5e2);
  box-shadow: 0 2px 8px rgba(16,32,39,.06);
}
.tires-mounted-pos {
  font-size: 11px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 8px;
  background: color-mix(in srgb, #ecffd8 70%, white);
  color: #123c4a;
  border: 1px solid color-mix(in srgb, #9eea3d 30%, transparent);
  flex-shrink: 0;
  letter-spacing: .04em;
}
.tires-mounted-info { flex: 1; min-width: 0; }
.tires-mounted-name { font-size: 13px; font-weight: 700; color: var(--text, #102027); }
.tires-mounted-meta { font-size: 11px; color: var(--muted, #7b8b91); margin-top: 2px; }
.tires-mounted-tread {
  font-size: 13px;
  font-weight: 800;
}
.tires-mounted-tread.ok { color: #19a35b; }
.tires-mounted-tread.warn { color: #d99015; }
.tires-mounted-tread.crit { color: #d94343; }
.tires-mounted-empty {
  padding: 32px 20px;
  text-align: center;
  color: var(--muted, #7b8b91);
}
.tires-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 480px;
  padding: 40px;
  text-align: center;
}
.tires-pos-counter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid var(--border-soft, #edf2f0);
  background: var(--surface-secondary, #f8faf9);
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary, #4f636b);
}
/* SVG tire positions */
.svg-tire-group { cursor: pointer; }
.svg-tire-group:hover .svg-tire-outer { filter: brightness(0.95); }
