/* Alfa-Rad ERP design tokens. This file is intentionally framework-neutral. */
:root {
  --erp-primary: #1d4ed8;
  --erp-primary-hover: #1e40af;
  --erp-primary-soft: #eff6ff;
  --erp-secondary: #475569;
  --erp-success: #15803d;
  --erp-success-soft: #f0fdf4;
  --erp-warning: #b45309;
  --erp-warning-soft: #fffbeb;
  --erp-danger: #b91c1c;
  --erp-danger-soft: #fef2f2;
  --erp-info: #0369a1;
  --erp-info-soft: #f0f9ff;
  --erp-bg: #f3f6fa;
  --erp-card-bg: #ffffff;
  --erp-sidebar: #0b1f3a;
  --erp-sidebar-2: #102a4c;
  --erp-border: #dbe3ec;
  --erp-text: #0f172a;
  --erp-muted: #64748b;
  --erp-radius-sm: 8px;
  --erp-radius: 12px;
  --erp-radius-lg: 18px;
  --erp-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
  --erp-shadow: 0 8px 24px rgba(15, 23, 42, .07);
  --erp-space-1: .25rem;
  --erp-space-2: .5rem;
  --erp-space-3: .75rem;
  --erp-space-4: 1rem;
  --erp-space-5: 1.5rem;
  --erp-space-6: 2rem;
  --erp-font: "Segoe UI", Tahoma, Arial, sans-serif;
  --erp-sidebar-width: 270px;
  --erp-sidebar-collapsed: 76px;
  --erp-topbar-height: 68px;
}

html { color-scheme: light; scroll-behavior: smooth; }
body { font-family: var(--erp-font); background: var(--erp-bg); color: var(--erp-text); }
body, button, input, select, textarea { font-family: var(--erp-font); }
::selection { background: #bfdbfe; color: #172554; }
:focus-visible { outline: 3px solid rgba(37, 99, 235, .35); outline-offset: 2px; }

.erp-sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.erp-skip-link {
  position: fixed; inset-block-start: 8px; inset-inline-start: 8px; z-index: 3000;
  transform: translateY(-150%); padding: 10px 14px; border-radius: var(--erp-radius-sm);
  background: var(--erp-card-bg); color: var(--erp-primary); font-weight: 800;
}
.erp-skip-link:focus { transform: translateY(0); }

.h1, h1 { color: var(--erp-text); letter-spacing: 0; }
.muted, .text-muted { color: var(--erp-muted) !important; }
.numeric, [data-numeric], .money, .amount { font-variant-numeric: tabular-nums; }

.btn, button.btn, input[type="submit"], input[type="button"] {
  min-height: 42px; border-radius: var(--erp-radius); font-weight: 700;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.btn:hover { transform: none; }
.btn-primary, .btn:not(.btn-ghost):not(.btn-danger):not(.btn-warning):not(.btn-secondary):not(.btn-outline-secondary):not(.btn-outline-primary) {
  background: var(--erp-primary); border-color: var(--erp-primary); color: #fff;
}
.btn-primary:hover { background: var(--erp-primary-hover); border-color: var(--erp-primary-hover); }
.btn-success { background: var(--erp-success); border-color: var(--erp-success); color: #fff; }
.btn-warning { background: #f59e0b; border-color: #f59e0b; color: #422006; }
.btn-danger { background: var(--erp-danger); border-color: var(--erp-danger); color: #fff; }
.btn-ghost, .btn-outline-secondary { background: #fff; border-color: var(--erp-border); color: #334155; box-shadow: none; }
.btn[disabled], button[disabled], .is-submitting { opacity: .68; cursor: wait; pointer-events: none; }

input:not([type="checkbox"]):not([type="radio"]), select, textarea, .form-control, .form-select {
  width: 100%; min-height: 42px; padding: .625rem .75rem; border: 1px solid #cbd5e1;
  border-radius: var(--erp-radius); background: #fff; color: var(--erp-text); box-shadow: none;
}
textarea { min-height: 108px; resize: vertical; }
input:focus, select:focus, textarea:focus, .form-control:focus, .form-select:focus {
  border-color: #60a5fa; outline: 0; box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}
label { color: #334155; font-weight: 700; }
.errorlist, .invalid-feedback, .field-error { color: var(--erp-danger); font-size: .875rem; }
.helptext, .form-text { color: var(--erp-muted); font-size: .8125rem; }

.card, .page-card, .section-card, .table-card, .chart-card, .mini-card, .summary-card {
  background: var(--erp-card-bg); border: 1px solid var(--erp-border);
  border-radius: var(--erp-radius-lg); box-shadow: var(--erp-shadow-sm); color: var(--erp-text);
}
.topbar-page {
  padding: var(--erp-space-5); margin-block: 0 var(--erp-space-5); background: var(--erp-card-bg);
  border: 1px solid var(--erp-border); border-radius: var(--erp-radius-lg); box-shadow: var(--erp-shadow-sm);
}

.table-wrap, .table-responsive { width: 100%; overflow: auto; border: 1px solid var(--erp-border); border-radius: var(--erp-radius); background: #fff; }
.table, .data-table { width: 100%; border-collapse: separate; border-spacing: 0; color: var(--erp-text); }
.table th, .data-table th { position: sticky; top: 0; z-index: 2; background: #f8fafc; color: #475569; font-weight: 800; }
.table th, .table td, .data-table th, .data-table td { padding: .75rem .875rem; border-bottom: 1px solid #e7edf3; text-align: start; vertical-align: middle; }
.table tbody tr:nth-child(even), .data-table tbody tr:nth-child(even) { background: #fbfdff; }
.table tbody tr:hover, .data-table tbody tr:hover { background: var(--erp-primary-soft); }

.badge, .status-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 800; border: 1px solid var(--erp-border); background: #f8fafc; color: #334155; }
.badge.ok, .badge-success, .status-success { background: var(--erp-success-soft); color: var(--erp-success); border-color: #bbf7d0; }
.badge.warn, .badge-warning, .status-warning { background: var(--erp-warning-soft); color: var(--erp-warning); border-color: #fde68a; }
.badge.bad, .badge-danger, .status-danger { background: var(--erp-danger-soft); color: var(--erp-danger); border-color: #fecaca; }
.badge-info, .status-info { background: var(--erp-info-soft); color: var(--erp-info); border-color: #bae6fd; }

.erp-empty-state { padding: 2.5rem 1.25rem; text-align: center; color: var(--erp-muted); }
.erp-empty-state__icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto .75rem; border-radius: 50%; background: var(--erp-primary-soft); color: var(--erp-primary); font-size: 1.4rem; }
.erp-empty-state h2, .erp-empty-state h3 { margin: 0 0 .4rem; color: var(--erp-text); font-size: 1rem; }
.erp-empty-state p { margin: 0 auto 1rem; max-width: 42rem; }

.erp-filter-panel { margin-bottom: var(--erp-space-4); }
.erp-filter-panel > summary { cursor: pointer; padding: .85rem 1rem; font-weight: 800; }
.erp-filter-panel__body { padding: 0 1rem 1rem; }
.erp-form-actions { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: flex-end; padding-top: 1rem; }

.erp-breadcrumb { display: flex; align-items: center; gap: .4rem; min-width: 0; color: var(--erp-muted); font-size: .8125rem; }
.erp-breadcrumb a { color: var(--erp-primary); text-decoration: none; }
.erp-page-context { display: grid; gap: .15rem; min-width: 0; }
.erp-current-page { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #334155; font-weight: 800; }

.erp-sidebar-backdrop { display: none; position: fixed; inset: 0; z-index: 1090; background: rgba(15, 23, 42, .55); backdrop-filter: blur(2px); }
body.sidebar-mobile-open { overflow: hidden; }
body.sidebar-mobile-open .erp-sidebar-backdrop { display: block; }

.erp-toast-container { position: fixed; inset-block-start: 1rem; inset-inline-end: 1rem; z-index: 2100; display: grid; gap: .5rem; width: min(360px, calc(100vw - 2rem)); }
.erp-toast { display: flex; align-items: flex-start; gap: .65rem; padding: .85rem 1rem; border: 1px solid var(--erp-border); border-inline-start: 4px solid var(--erp-info); border-radius: var(--erp-radius); background: #fff; box-shadow: var(--erp-shadow); }
.erp-toast--success { border-inline-start-color: var(--erp-success); }
.erp-toast--warning { border-inline-start-color: var(--erp-warning); }
.erp-toast--error { border-inline-start-color: var(--erp-danger); }

@media (max-width: 991px) {
  .content-inner { padding: 1rem !important; }
  .topbar-page { padding: 1rem; border-radius: var(--erp-radius); }
  .erp-breadcrumb { display: none; }
  .topbar-actions .nav-user, .topbar-company .company-sub { display: none; }
  .sidebar { width: min(88vw, 310px) !important; }
}
@media (max-width: 575px) {
  .content-inner { padding: .75rem !important; }
  .h1, h1 { font-size: 1.35rem !important; }
  .summary-grid, .widgets, .cards { grid-template-columns: 1fr !important; }
  .btn-row, .page-actions, .erp-form-actions { width: 100%; }
  .btn-row > .btn, .page-actions > .btn, .erp-form-actions > .btn { flex: 1 1 100%; }
  .modal-dialog { margin: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
