/* =====================================================================
   DAFMS design system
   ===================================================================== */

:root {
  --dafms-navy: #0b2545;
  --dafms-navy-light: #123060;
  --dafms-blue: #1e63d0;
  --dafms-blue-dark: #164ea3;
  --dafms-green: #198754;
  --dafms-orange: #fd7e14;
  --dafms-red: #dc3545;
  --dafms-purple: #6f42c1;
  --dafms-bg: #f4f6fa;
  --dafms-border: #e6e9f0;
  --dafms-radius: 12px;
  --dafms-radius-sm: 8px;
  --dafms-shadow: 0 2px 10px rgba(11, 37, 69, .06);
  --dafms-shadow-hover: 0 8px 24px rgba(11, 37, 69, .12);
}

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  color: #1e2a3a;
  background: var(--dafms-bg);
}

h1, h2, h3, h4, h5, h6 { font-weight: 600; letter-spacing: -0.01em; }

/* ---------------------------------------------------------------
   Cards
   --------------------------------------------------------------- */
.card {
  border: 1px solid var(--dafms-border);
  box-shadow: var(--dafms-shadow);
  border-radius: var(--dafms-radius);
  transition: box-shadow .2s ease;
}

.stat-card {
  border-radius: var(--dafms-radius);
  padding: 1.4rem 1.5rem;
  color: #fff;
  box-shadow: var(--dafms-shadow);
  background-image: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,0));
  transition: transform .15s ease, box-shadow .15s ease;
}
.stat-card:hover { transform: translateY(-2px); box-shadow: var(--dafms-shadow-hover); }
.stat-card .small { opacity: .85; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; font-size: .72rem; }

/* ---------------------------------------------------------------
   Buttons
   --------------------------------------------------------------- */
.btn {
  border-radius: var(--dafms-radius-sm);
  font-weight: 500;
  padding: .5rem 1.1rem;
  transition: transform .12s ease, box-shadow .12s ease, background-color .15s ease, border-color .15s ease;
  letter-spacing: .01em;
}
.btn-sm { padding: .32rem .7rem; border-radius: 7px; font-size: .8125rem; }

.btn-primary {
  background: var(--dafms-blue);
  border-color: var(--dafms-blue);
  box-shadow: 0 2px 6px rgba(30, 99, 208, .3);
}
.btn-primary:hover, .btn-primary:focus {
  background: var(--dafms-blue-dark);
  border-color: var(--dafms-blue-dark);
  box-shadow: 0 4px 12px rgba(30, 99, 208, .4);
  transform: translateY(-1px);
}

.btn-success { background: var(--dafms-green); border-color: var(--dafms-green); box-shadow: 0 2px 6px rgba(25,135,84,.28); }
.btn-success:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(25,135,84,.38); }

.btn-danger { box-shadow: 0 2px 6px rgba(220,53,69,.25); }
.btn-danger:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(220,53,69,.35); }

.btn-outline-primary, .btn-outline-secondary, .btn-outline-success,
.btn-outline-danger, .btn-outline-warning, .btn-outline-dark {
  background: #fff;
}
.btn-outline-primary:hover, .btn-outline-secondary:hover, .btn-outline-success:hover,
.btn-outline-danger:hover, .btn-outline-warning:hover, .btn-outline-dark:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(11, 37, 69, .12);
}

.btn:active { transform: translateY(0); }
.btn:focus-visible { outline: 2px solid var(--dafms-blue); outline-offset: 2px; }

.btn-group .btn { border-radius: 0; }
.btn-group .btn:first-child { border-top-left-radius: var(--dafms-radius-sm); border-bottom-left-radius: var(--dafms-radius-sm); }
.btn-group .btn:last-child { border-top-right-radius: var(--dafms-radius-sm); border-bottom-right-radius: var(--dafms-radius-sm); }
.btn-group .btn.active { box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); font-weight: 600; }

/* ---------------------------------------------------------------
   Tables
   --------------------------------------------------------------- */
.table thead th {
  background: var(--dafms-navy);
  color: #fff;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
  border: none;
  padding: .75rem .85rem;
  white-space: nowrap;
}
.table thead th:first-child { border-top-left-radius: 6px; }
.table thead th:last-child { border-top-right-radius: 6px; }
.table td { padding: .65rem .85rem; vertical-align: middle; font-size: .9rem; border-color: var(--dafms-border); }
.table-hover tbody tr:hover { background-color: #eef3fb; }
.table-sm td, .table-sm th { padding: .5rem .7rem; }

/* ---------------------------------------------------------------
   Badges
   --------------------------------------------------------------- */
.badge {
  font-weight: 600;
  padding: .38em .75em;
  border-radius: 999px;
  font-size: .72rem;
  letter-spacing: .03em;
}
.badge-status-draft { background: #6c757d; }
.badge-status-pending_confirmation { background: var(--dafms-orange); }
.badge-status-confirmed { background: var(--dafms-green); }
.badge-status-rejected { background: var(--dafms-red); }
.badge-status-reversed { background: var(--dafms-red); }

/* ---------------------------------------------------------------
   Forms
   --------------------------------------------------------------- */
.form-control, .form-select {
  border-radius: var(--dafms-radius-sm);
  border-color: #d5dae3;
  padding: .55rem .8rem;
  font-size: .9rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus, .form-select:focus {
  border-color: var(--dafms-blue);
  box-shadow: 0 0 0 .2rem rgba(30, 99, 208, .15);
}
.form-label { font-weight: 600; font-size: .82rem; color: #445; margin-bottom: .3rem; }
.form-text { font-size: .78rem; }

/* ---------------------------------------------------------------
   Modals
   --------------------------------------------------------------- */
.modal-content { border: none; border-radius: var(--dafms-radius); box-shadow: 0 12px 40px rgba(11,37,69,.25); }
.modal-header { border-bottom: 1px solid var(--dafms-border); padding: 1rem 1.25rem; }
.modal-footer { border-top: 1px solid var(--dafms-border); padding: .85rem 1.25rem; }

/* ---------------------------------------------------------------
   Alerts
   --------------------------------------------------------------- */
.alert { border: none; border-radius: var(--dafms-radius-sm); }

/* ---------------------------------------------------------------
   Navbar / Sidebar
   --------------------------------------------------------------- */
.navbar { box-shadow: 0 1px 6px rgba(0,0,0,.15); }

#dafmsSidebar .nav-link {
  padding: .55rem .8rem;
  border-radius: 8px;
  font-size: .88rem;
  color: rgba(255,255,255,.85);
  transition: background-color .15s ease, color .15s ease;
}
#dafmsSidebar .nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
#dafmsSidebar .nav-link.active { background: var(--dafms-blue); color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(30,99,208,.4); }

/* ---------------------------------------------------------------
   Misc
   --------------------------------------------------------------- */
a { color: var(--dafms-blue); }
a:hover { color: var(--dafms-blue-dark); }
::selection { background: rgba(30,99,208,.2); }
