/* Frappe-style theme overrides */

:root {
  --frappe-primary: #5e64ff;
  --frappe-primary-600: #4c52ff;
  --frappe-primary-700: #3d42cc;

  --frappe-bg: #f7f8fa;
  --frappe-surface: #ffffff;
  --frappe-surface-2: #f9fafb;
  --frappe-border: #e6ebf1;
  --frappe-border-strong: #d6dbe3;
  --frappe-text: #1f2937;
  --frappe-text-muted: #6b7280;

  --frappe-success: #10b981;
  --frappe-info: #13b5ea;
  --frappe-warning: #f59e0b;
  --frappe-danger: #ef4444;

  --frappe-radius: 10px;
  --frappe-radius-sm: 8px;
  --frappe-shadow: 0 1px 1px rgba(0,0,0,0.03), 0 8px 20px rgba(0,0,0,0.06);
}

/* Base */
body {
  background-color: var(--frappe-bg);
  color: var(--frappe-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  line-height: 1.5;
}

a {
  color: var(--frappe-primary);
  text-decoration: none;
}

a:hover {
  color: var(--frappe-primary-600);
}

.text-off, .text-muted {
  color: var(--frappe-text-muted) !important;
}

/* Topbar */
#default-navbar.navbar {
  background-color: var(--frappe-surface);
  border-bottom: 1px solid var(--frappe-border);
  box-shadow: none;
}

#default-navbar .nav-link {
  color: #374151;
}

#default-navbar .nav-link:hover,
#default-navbar .nav-link:focus {
  color: var(--frappe-primary);
}

#default-navbar .dropdown-menu {
  border: 1px solid var(--frappe-border);
  border-radius: var(--frappe-radius);
  box-shadow: var(--frappe-shadow);
}

/* Sidebar */
.sidebar {
  background-color: var(--frappe-surface);
  border-right: 1px solid var(--frappe-border);
}

.sidebar .sidebar-menu > li > a {
  color: #374151;
  border-radius: var(--frappe-radius-sm);
}

.sidebar .sidebar-menu > li > a:hover {
  background: #f3f4ff;
  color: var(--frappe-primary);
}

.sidebar .sidebar-menu > li.active > a {
  background: #eef2ff;
  color: var(--frappe-primary);
  box-shadow: inset 3px 0 0 0 var(--frappe-primary);
}

.sidebar .sidebar-menu > li.main > a .badge.rounded-pill {
  background: var(--frappe-primary) !important;
}

/* Page wrappers and titles */
.page-wrapper,
#page-content {
  background: transparent;
}

.page-title {
  border-bottom: 1px solid var(--frappe-border);
}

.page-title h4 {
  color: #111827;
  font-weight: 600;
  letter-spacing: 0.1px;
}

/* Headings */
h1, .h1 { font-weight: 700; }
h2, .h2 { font-weight: 700; }
h3, .h3 { font-weight: 600; }
h4, .h4 { font-weight: 600; }
h5, .h5 { font-weight: 600; }
h6, .h6 { font-weight: 600; }

/* Spacing tweaks */
.card .card-body { padding: 16px 18px; }
.card .card-header { padding: 14px 18px; }
.card .card-footer { padding: 12px 18px; }

/* Cards */
.card {
  border: 1px solid var(--frappe-border);
  border-radius: var(--frappe-radius);
  box-shadow: var(--frappe-shadow);
  background: var(--frappe-surface);
}

.card .card-header,
.card-header {
  background: var(--frappe-surface);
  border-bottom: 1px solid var(--frappe-border);
}

.card .card-footer,
.card-footer {
  background: var(--frappe-surface);
  border-top: 1px solid var(--frappe-border);
}

/* Buttons */
.btn-primary,
.bg-primary {
  background-color: var(--frappe-primary) !important;
  border-color: var(--frappe-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--frappe-primary-600) !important;
  border-color: var(--frappe-primary-600) !important;
}

.btn-default {
  color: var(--frappe-primary);
  background-color: #eef2ff;
  border-color: transparent;
}

.btn-default:hover,
.btn-default:focus {
  color: #fff;
  background-color: var(--frappe-primary);
}

.btn-outline-primary {
  color: var(--frappe-primary);
  border-color: var(--frappe-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--frappe-primary);
  color: #fff;
}

/* Forms */
.form-control,
.form-select,
.awesomplete > input {
  border-radius: var(--frappe-radius-sm);
  border-color: var(--frappe-border);
  box-shadow: none;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--frappe-primary);
  box-shadow: 0 0 0 3px rgba(94, 100, 255, 0.15);
}

.input-group-text {
  border-color: var(--frappe-border);
  background: var(--frappe-surface-2);
}

/* Tabs */
.nav-tabs .nav-link {
  border: none;
  color: var(--frappe-text-muted);
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: #111827;
  background: transparent;
  border: none;
  box-shadow: inset 0 -2px 0 0 var(--frappe-primary);
}

.nav-tabs.title .nav-link,
.nav-tabs.inner .nav-link {
  padding-bottom: 12px;
}

/* Tables */
.table thead th {
  background: #f8fafc;
  border-bottom: 1px solid var(--frappe-border);
}

.table td,
.table th {
  border-color: var(--frappe-border);
}

.table tbody tr:hover {
  background: #f9fafe;
}

/* Badges */
.badge.bg-primary {
  background: var(--frappe-primary) !important;
}

.badge.bg-success { background: var(--frappe-success) !important; }
.badge.bg-info { background: var(--frappe-info) !important; }
.badge.bg-warning { background: var(--frappe-warning) !important; }
.badge.bg-danger { background: var(--frappe-danger) !important; }

/* Alerts */
.alert-primary {
  color: #1d2b5b;
  background: rgba(94, 100, 255, 0.12);
  border-color: rgba(94, 100, 255, 0.24);
}

.alert-success {
  color: #065f46;
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.24);
}

.alert-info {
  color: #0c4a6e;
  background: rgba(19, 181, 234, 0.12);
  border-color: rgba(19, 181, 234, 0.24);
}

.alert-warning {
  color: #7c4a0a;
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.24);
}

.alert-danger {
  color: #7f1d1d;
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.24);
}

/* Progress */
.progress {
  background: #eceff7;
  border-radius: 9999px;
}

.progress-bar.bg-primary {
  background: var(--frappe-primary) !important;
}

/* Dropdowns */
.dropdown-menu {
  border: 1px solid var(--frappe-border);
  border-radius: var(--frappe-radius);
  box-shadow: var(--frappe-shadow);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background: #f3f4ff;
  color: var(--frappe-primary);
}

/* Utilities */
.rounded,
.rounded-1,
.rounded-2,
.rounded-3 {
  border-radius: var(--frappe-radius) !important;
}

.rounded-bottom {
  border-bottom-left-radius: var(--frappe-radius) !important;
  border-bottom-right-radius: var(--frappe-radius) !important;
}

/* Specific component tweaks */
.navbar-custom .brand-logo .dashboard-image {
  height: 28px;
}

.sidebar .dashboard-image {
  height: 32px;
}

.language-dropdown,
.notification-dropdown,
.message-dropdown,
.user-dropdown-menu {
  border: 1px solid var(--frappe-border);
  border-radius: var(--frappe-radius);
  box-shadow: var(--frappe-shadow);
}

/* DataTable controls alignment fix */
.dataTables_wrapper .dataTables_filter input[type="search"] {
  border-radius: var(--frappe-radius-sm);
  border-color: var(--frappe-border);
}

.dataTables_wrapper .dataTables_length select {
  border-radius: var(--frappe-radius-sm);
}

/* Modal refinements */
.modal-content {
  border-radius: var(--frappe-radius);
  border: 1px solid var(--frappe-border);
  box-shadow: var(--frappe-shadow);
}

.modal-header {
  border-bottom: 1px solid var(--frappe-border);
}

.modal-footer {
  border-top: 1px solid var(--frappe-border);
}

/* Select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  border-color: var(--frappe-border);
  border-radius: var(--frappe-radius-sm);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 36px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px;
}

.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--single {
  border-color: var(--frappe-primary);
  box-shadow: 0 0 0 3px rgba(94, 100, 255, 0.15);
}

/* Pills/labels used across app */
.label,
.badge {
  border-radius: 9999px;
}

/* RTL safe adjustments (overrides load after rtl.css) */
html[dir="rtl"] .sidebar .sidebar-menu > li.active > a {
  box-shadow: inset -3px 0 0 0 var(--frappe-primary);
}
