:root {
  --primary-color: #E0A018;
}



html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
   body {
    margin: 0 auto;
    color: #443621 ;
    position: relative;
    font-family: 'Urbanist', sans-serif;
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: 0.8px;
    background: #FAFAF2;
  }
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
  h1 {
    font-size: 2em;
    margin: 0.67em 0;
  }
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
   hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
  }
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
  pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
  }
/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
   a {
    background-color: transparent;
    text-decoration: unset;
  }
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
  abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
  }
  :focus {
    outline: none;
  }
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
  b,
  strong {
    font-weight: 700;
    color: #443621;
  }
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
  code,
  kbd,
  samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
  }
/**
 * Add the correct font size in all browsers.
 */
  small {
    font-size: 80%;
  }
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
   img {
    border-style: none;
  }
  p {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.3;
  }
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
   button,
   input,
   optgroup,
   select,
   textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
  }
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
  button,
  input { /* 1 */
    overflow: visible;
  }
  button[disabled], html input[disabled] {
    cursor: no-drop;
  }
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
  button,
  select { /* 1 */
    text-transform: none;
  }
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
  button,
  [type="button"],
  [type="reset"],
  [type="submit"] {
    -webkit-appearance: button;
  }
/**
 * Remove the inner border and padding in Firefox.
 */
  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }
/**
 * Restore the focus styles unset by the previous rule.
 */
  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
  }
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
  progress {
    vertical-align: baseline;
  }
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
  textarea {
    overflow: auto;
  }
  .bold {
    font-weight: bold;
  }
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
  [type="checkbox"],
  [type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
  }
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
  [type="number"]::-webkit-inner-spin-button,
  [type="number"]::-webkit-outer-spin-button {
    height: auto;
  }
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
  [type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
  }
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
  [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
  ::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
  }
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
   details {
    display: block;
  }
/*
 * Add the correct display in all browsers.
 */
  summary {
    display: list-item;
  }
/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
   template {
    display: none;
  }
/**
 * Add the correct display in IE 10.
 */
  [hidden] {
    display: none;
  }
  /* ===== Scrollbar CSS ===== */
  /* Firefox */
  * {
    scrollbar-width: auto;
    scrollbar-color: var(--primary-color) #ffffff;
  }

  /* Chrome, Edge, and Safari */
  *::-webkit-scrollbar {
    width: 16px;
  }

  *::-webkit-scrollbar-track {
    background: #ffffff;
  }

  *::-webkit-scrollbar-thumb {
    background-color: var(--primary-color);
    border-radius: 10px;
    border: 3px solid #ffffff;
  }

  .error-404.not-found {
    text-align: center;
  }
/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
button,
input,
select,
optgroup,
textarea {
  color: #404040;
  font-family: sans-serif;
  font-size: 14px;
  line-height: 20px;
}
h1, h2, h3, h4, h5, h6 {
  clear: both;
}
h2 {
  font-size: 1.643em;
}
h1, .h1, h2, .h2, h3, .h3 {
  margin-top: 28px;
  margin-bottom: 14px;
}
.h1, h1 {
  font-size: 35px;
  font-family: 'Frank Ruhl Libre', serif;
  font-weight: 900;
  line-height: 1.3;
}
ul {
  padding: 0;
}
dfn, cite, em, i {
  font-style: italic;
  font-size: 14px;
}
li{
  list-style: none;
}
blockquote {
  margin: 0 1.5em;
}
address {
  margin: 0 0 1.5em;
}
pre {
  background: #eee;
  font-family: "Courier 10 Pitch", Courier, monospace;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}
code, kbd, tt, var {
  font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
  font-size: 15px;
  font-size: 0.9375rem;
}
abbr, acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}
mark, ins {
  background: #fff9c0;
  text-decoration: none;
}
big {
  font-size: 125%;
}
/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/
html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
  box-sizing: inherit;
}
hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}
ol {
  list-style: decimal;
}
li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}
dt {
  font-weight: bold;
}
img {
  height: auto;
  /* Make sure images are scaled correctly. */
  max-width: 100%;
  /* Adhere to container width. */
}
figure {
  margin: 0 0 10px 0;
  /* Extra wide images within figure tags don't overflow the content area. */
}
table {
  margin: 0 0 1.5em;
  width: 100%;
}
table.table tbody td {
  text-transform: uppercase;
  padding: 3px 10px !important;
  font-size: 12px;
  letter-spacing: 0.3px;
  vertical-align: middle;
}
.vd_red{
  color: #C52F33;
}

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
button,
.btn,
input[type="button"],
input[type="reset"],
input[type="submit"],
.dtButtons div.dt-buttons>.dt-button, 
.dtButtons div.dt-buttons>div.dt-button-split .dt-button {
  border: 1px solid var(--primary-color);
  background: var(--primary-color);
  color: #fff;
  text-transform: capitalize;
  padding: 3px 5px;
  border-radius: 5px;
  margin: 0 auto;
  font-size: 14px;
}

.dtButtons div.dt-buttons>.dt-button:hover, 
.dtButtons div.dt-buttons>div.dt-button-split .dt-button:hover,
.dtButtons div.dt-buttons>.dt-button:hover:not(.disabled), 
.dtButtons div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled) {
  border: 1px solid var(--primary-color);
  background: var(--primary-color);
  color: #fff;
}
label{
  font-weight: normal;
}
button:hover,
.btn:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
  background-color: #fff;
  color: var(--primary-color);
  border-color: var(--primary-color);
}
.btn:active,
.btn:focus,
.btn.active.focus, 
.btn.active:focus, 
.btn.focus, 
.btn:active.focus, 
.btn:active:focus, 
.btn:focus{
  background-color: #fff;
  color: var(--primary-color);
  outline: none;
  box-shadow: none;
}
button:active, button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
  border-color: var(--primary-color);
}

select {
  border: 2px solid #ccc;
  border-radius: 0;
  padding: 5px 10px;
}

textarea {
  width: 100%;
  padding: 10px;
  min-height: 130px;
}


.btn-danger {
  color: #fff;
  background: #dc3545;
  border-color: #dc3545;
}
.btn-danger:hover {
  color: #fff;
  background: #bb2d3b;
  border-color: #b02a37;
}
.btn-danger:active {
  color: #fff;
  background: #b02a37;
  border-color: #a52834;
}
.btn-danger:disabled {
  color: #fff;
  background: #dc3545;
  border-color: #dc3545;
}

/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
a {
  color: #443621;
}
a:hover, a:focus, a:active {
  color: var(--primary-color);
  text-decoration: none;
}
a:focus {
  outline: none;
}
a:hover, a:active {
  outline: 0;
}
/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}
/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
  outline: 0;
}
/*--------------------------------------------------------------
# Alignments
--------------------------------------------------------------*/
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em;
}
.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em;
}
.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

#page {
  height: 100vh;
  display: flex;
  flex-direction: column;
}
header#header {
  display: flex;
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.81) 32.33%, rgba(255, 240, 227, 0.22) 116.92%);
  background-image: url(../img/header_bg.png);
  background-size: cover;
  box-shadow: 0px 4px 11px 0px #00000021;
  background-color: #fff;
}
.login #logo {
  margin: 0 auto;
}
body.login {
  background-image: url(../img/login-bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: right;
}



.container-fluid {
  width:100%;
}

#main_content {
  display: flex;
  flex-grow: 1;
}


.sidebar {
  width: 250px;
  color: #fff;
  padding: 1rem;
  background: #fff6e5 none repeat scroll 0 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  box-shadow: 0px 4px 11px 0px #00000059;
}
.content {
  width: calc(100% - 250px);
}

.sidebar-title {
  font-size: 1.1rem;
  margin-bottom: 1rem;
  color: #adb5bd;
}

.navbar{
  width: 100%;
}
#menu {
  display: none;
}
.sidebar .nav-link {
  padding: 0.6rem 0.8rem;
  text-align: left;
  width: 100%;
  background: #fff;
  border: 1px solid var(--primary-color);
  border-radius: 5px;
  color: var(--primary-color);
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
  background: var(--primary-color);
  color: #fff;
}


/* Tabs */
.tab-pane .tab-content {
  background: #fff;
}
.tab_btn_content {
  display: flex;
  border: 1px solid var(--primary-color);
  padding: 20px;
  background: #fff6e5 none repeat scroll 0 0;
  border-radius: 10px;
  margin-bottom: 20px;
}
.tab_btn_content img {
  max-width: 45px;
  margin-bottom: 10px;
}
.tab_btn_content a.tab_btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-align: center;
}

.tab_btn_content a.tab_btn:not(:last-child) {
  margin-right: 25px;
  border-right: 1px solid #e0a01852;
  padding-right: 25px;
}
.tab-pane .nav-tabs .nav-link {
  border-radius: 5px 5px 0px 0px;
  background: #ffff;
  color: #000;
  margin-bottom: 0;
  padding: 5px 15px;
  border-color: #dee2e6;
  border-bottom: 0;
}
.tab-pane .nav-tabs  .nav-item:not(:last-child) .nav-link{
  margin-right: 5px;
}
.tab-pane .nav-tabs .nav-item.show .nav-link,.tab-pane .nav-tabs .nav-link.active,.tab-pane .nav-tabs .nav-link:hover {
  color: #fff;
  background-color: var(--primary-color);
  border-color: var(--primary-color);
}

.tab-pane .nav-tabs {
  border-color: var(--primary-color);
}

.dt-buttons {
  display: block !important;
}

.dt_action>*:not(:first-child) {
  margin-left: 10px;
}
.dt_action>:last-child {
  margin-left: 5px;
}

.date-range {
  display: flex;
      flex: 1;
          align-items: center;
    justify-content: flex-start;
}
.date-range>* {
  display: flex;
  align-items: center;
}
.date-range>*:not(:last-child) {
  margin-right: 10px;
}
.date-range input{
  display: flex;
  min-width: 80px;
  position: relative;
  border: 1px solid #cfd4da;
  width: auto;
  font-size: 12px;
  padding: 2px 5px;
  margin-left: 3px;
}
.dt_action label {
  font-size: 12px;
  white-space: nowrap;
}
.date-range>div::placeholder {
  color: red;
  opacity: 0.5;
}
.dtfilter [type="search"] {
  border: 1px solid #cfd4da;
  margin: 0;
  padding: 2px 5px;
  font-size: 12px;
}

.dt_action .dtButtons div.dt-buttons>.dt-button,
.dt_action  button,.dt_action .btn {
  border: none !important;
  background: #fff;
  color: var(--primary-color);
  width: 24px;
  font-size: 16px;
  padding: 0;
  height: 24px;
  margin: 0;
}
.dt_action .dtButtons div.dt-buttons>.dt-button:hover,
.dt_action  button:hover,.dt_action .btn:hover {
  border: none !important;
  background: var(--primary-color);
  color: #fff;
}
.dt_action button.dt-button.buttons-colvis {

}
.dt_action{
  position: relative;
}
/* ===== ColVis Popup Container ===== */
.dt_action .dt-button-collection {
  background: #ffffff !important;
  border-radius: 10px;
  padding: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
  border: 1px solid #e5e7eb;
  color: #000;
  left: auto !important;
  right: 0 !important;
}
.dt_action .dt-button .dt-button-down-arrow {
  display: none;
}
/* ===== Grid Layout ===== */
.dt_action .dt-button-collection > div[role="menu"] {
  display: flex;
  max-height: 260px;
  overflow-y: auto;
  padding-right: 5px;
  flex-direction: column;
}

/* ===== Individual Buttons ===== */
.dt_action  button.dt-button.buttons-columnVisibility {
  background: #f8fafc !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
  padding: 2px 8px !important;
  font-size: 12px;
  text-align: left;
  color: #111827 !important;
  cursor: pointer;
  transition: all 0.2s ease;
  overflow: visible !important;
  margin-bottom: 10px !important;
  display: block !important;
  height: auto;
  width: auto;
}


/* Hover */
.dt_action button.dt-button.buttons-columnVisibility:hover {
  background: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
  color: #fff !important;
}

/* Active (Visible Columns) */
.dt_action button.dt-button.buttons-columnVisibility.dt-button-active {
  background: var(--primary-color) !important;
  color: #ffffff !important;
  border-color: var(--primary-color) !important;
}

/* Active Hover */
.dt_action button.dt-button.buttons-columnVisibility.dt-button-active:hover {
  background: #ffffff !important;
  color: var(--primary-color) !important;
}

/* Text inside */
.dt_action button.dt-button.buttons-columnVisibility span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


.dt_action button.dt-button.buttons-colvis:hover {
  border-color: var(--primary-color) !important;
  color: #fff;
}


.dataTables_scrollBody table.dataTable {
  margin: 0;
}
.table-responsive .dataTables_wrapper {
  width: 100%;
  overflow-x: auto;
  border: 1px solid #dee2e6;
}
.table-responsive .dataTables_wrapper .dataTables_info {
 padding: 18px 10px;
}
.table-responsive .dataTables_wrapper .dataTables_paginate {
  padding: 10px 10px;
}

.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button,
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  background-color: #fff !important;
  color: var(--primary-color) !important;
  border: 1px solid var(--primary-color) !important;
}
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.disabled{
  cursor: no-drop !important;
}

.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.current, 
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover, 
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, 
.table-responsive .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
  background: var(--primary-color) !important;
  color: #fff !important;
}

.dt-top {
  display: flex;
  gap: 10px;
  align-items: center;
}
.dtfc-fixed-right {
  background: #fff;
  box-shadow: -3px 0 6px rgba(0,0,0,0.1);
}

table.dataTable tfoot th,
table.dataTable tfoot td {
    border: 1px solid #dee2e6 !important;
    font-weight: 600;
    background: #fff;
}


td.action .btn {
  width: 22px;
  font-size: 12px;
  padding: 0;
  height: 22px;
}
td.action,th.action  {
  white-space: nowrap;
  text-align: center;
}
.dynamicTables td.action, .dynamicTables th.action {
  width: 45px;
}
/* Force all table data inline (single line) */
#addressTable th,
#addressTable td {
  white-space: nowrap;     /* ❌ no line break */
  vertical-align: middle;
  padding: 5px 10px;
}
#familyTable th,
#familyTable td {
  white-space: nowrap;   
  vertical-align: middle;
}
/* Photo */

#oldPhotoWrapper {
  display: inline-block;
}
.photodltBtn{
  position: absolute;
  top: 0;
  left: auto;
  right: 0;
  width: 20px;
  height: 20px;
  font-size: 12px;
  padding: 0;
}


/* Prevent text wrapping anywhere */
#addressTable {
  table-layout: auto;
}





.select2-selection--multiple {
  min-height: 30px;
  padding-right: 18px;
}

.select2-selection--multiple:after {
  content: "▼";
  position: absolute;
  right: 6px;
  top: 7px;
  font-size: 10px;
  color: #555;
}

#addressTable thead th {
  overflow: visible !important;
}

.address_btn_group:not(:last-child) {
  margin-right: 15px;
}

tr.not-export th {
    padding: 0 !important;
}
.excel-filter,input[type=text].date-filter,th>.outside-search {
  display: flex;
  position: relative;
  border: none;
  min-width: 100px;
}
input[type=text].date-filter {
  max-width: 100px;
}

.outside-search {
  width: 100%;
  font-size: 11px;
  padding: 2px 4px;
}

.filter-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 99999;
  background: #fff;
  border: 1px solid #ccc;
  width: 240px;
  padding: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
}

.filter-options {
  max-height: 180px;
  overflow-y: auto;
  margin: 5px 0;
}

.filter-options label {
  display: block;
  font-size: 12px;
}

.filter-actions {
  display: flex;
  justify-content: space-between;
}


.excel-dropdown {
  position: absolute;
  z-index: 999999;
  background: #fff;
  border: 1px solid #ccc;
  width: 240px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
input[type=text].date-filter{
  height: 18px;
  padding: 2px 5px;
}
.date-filter::placeholder {
  color: #999;
  font-size: 11px;
}

/* outside search input */
.excel-filter .outside-search, .outside-search  {
  width: 100%;
  height: 18px;
  font-size: 12px;
  padding: 2px 5px;
  border: none;
  border-radius: 0;
  outline: none;
  background: #fff;
  transition: all 0.15s ease;
  line-height: 1;
}

.excel-filter .outside-search::placeholder,
.outside-search::placeholder {
  color: #999;
  font-size: 11px;
}

.excel-filter .filter-btn {
  width: 26px;
  height: 22px;
  font-size: 11px;
  border: none;
  border-left: 1px solid #cfd4da;
  background: linear-gradient(#ffffff, #f1f3f5);
  border-radius: 0;
  cursor: pointer;
  padding: 0;
  color: #404040;
}

.excel-filter .filter-btn:hover {
  background: #e9ecef;
}

.excel-filter .filter-btn:active {
  background: #dee2e6;
}


.excel-dropdown {
  position: absolute;
  z-index: 999999;
  background: #fff;
  border: 1px solid #cfd4da;
  border-radius: 4px;
  width: 260px;
  padding: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  font-size: 12px;
}


.excel-dropdown .filter-search {
  width: 100%;
  height: 26px;
  padding: 3px 6px;
  font-size: 12px;
  border: 1px solid #cfd4da;
  border-radius: 3px;
  margin-bottom: 6px;
}

.excel-dropdown .filter-search:focus {
  border-color: #0d6efd;
  box-shadow: 0 0 0 1px rgba(13,110,253,.15);
}


.excel-dropdown .filter-options {
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid #e1e5ea;
  border-radius: 3px;
  padding: 4px;
  background: #fafafa;
}

.excel-dropdown .filter-options label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 4px;
  cursor: pointer;
  border-radius: 0;
}
.excel-dropdown .filter-options label:not(:last-child) {
  border: 1px solid #c5c5c5;
}
.excel-dropdown .filter-options label:hover {
  background: var(--primary-color);
  color: #fff;
}

.excel-dropdown .filter-options input[type="checkbox"] {
  cursor: pointer;
}
/* 🔥 hide table UNTIL DataTable ready */
.dt-preload {
  opacity: 0;
}
#page .dataTables_wrapper .dataTables_paginate .ellipsis {
    padding: 0 5px;
}
#page .dataTables_wrapper .dataTables_paginate {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}
#page .dataTables_wrapper .dataTables_paginate>* {
    display: flex;
}
#page .dataTables_wrapper .dataTables_paginate .paginate_button {
  width: 30px;
  height: 30px;
  border-radius: 5px;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
      margin-left: 4px;
}

/* 🔥 show after DataTable init */
.dt-ready {
  opacity: 1;
  transition: opacity 0.15s ease-in;
}


.excel-dropdown .filter-actions {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
}

.excel-dropdown .filter-actions button {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 3px;
  border: 1px solid #cfd4da;
  cursor: pointer;
  background: #f8f9fa;
}

.excel-dropdown .filter-actions button:hover {
  background: #e9ecef;
}

.excel-dropdown .apply-filter {
  background: #198754;
  color: #fff;
  border-color: #198754;
}

.excel-dropdown .apply-filter:hover {
  background: #198754;
}



/*label and input css*/
.vd_field{
  display: flex;
  align-items: center;
}
.vd_field>div {
  width: 100%;
}
.vd_field_label {
  flex: 0 0 120px;
  font-size: 12px;
  font-weight: 700;
  padding-right: 5px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.vd_field_input {
  flex: 1;
  font-size: 14px;
}
.form-control:focus {
  box-shadow: 0px  0 3px 3px rgb(224 160 24 / 25%);
  border-color: var(--primary-color);
}

.vd_field_label_radio {
  font-weight: 700;
  display: flex;
  position: relative;
  align-items: center;
  cursor: pointer;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  line-height: 1;
}

/* hide default radio */
.vd_field_label_radio input[type="radio"] {
  display: none;
}

/* custom circle */
.vd_field_label_radio span {
  position: relative;
  padding-left: 20px;
}

.vd_field_label_radio span::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 14px;
  height: 14px;
  border: 2px solid #999;
  border-radius: 50%;
  transform: translateY(-50%);
  background: #fff;
  border-color: inherit;
}

/* checked dot */
.vd_field_label_radio span::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  width: 6px;
  height: 6px;
  background: #443621;
  border-radius: 50%;
  transform: translateY(-50%) scale(0);
  transition: 0.2s;
}

/* checked state */
.vd_field_label_radio input:checked + span::after {
  transform: translateY(-50%) scale(1);
}

/* color variants */
.vd_field_label_radio.color-green span::after {
  background: #28a745;
}

.vd_field_label_radio.color-red span::after {
  background: #dc3545;
}
.vd_field_input_checkbox {
  display: flex;
  align-items: center;
}
.vd_field_input b {
  letter-spacing: 0;
}
.vd_field_input_checkbox input[type="checkbox"] {
  margin-right: 7px;
  width: 14px;
  height: 14px;
}
.vd_field_label_radio:not(:last-child){
  margin-right: 20px;
}

.vd_field_input.vd_field_input_radio {
  display: flex;
}

.color-green {
  color: #28bd28;
}
.color-red {
  color: #d51414;
}
.vd_field.mb-2>div {
  flex: 1;
  position: relative;
}

#userTable th, #userTable td {
  white-space: nowrap;
  vertical-align: middle;
  padding: 5px 10px;
}
small.username-status {
  padding: 5px 0 0;
  display: block;
  font-weight: 700;
}
#userEditModal,#roleEditModal,#visitorEditModal {
  align-content: center;
  justify-content: center;
  margin: 0 auto;
  left: 0;
  right: 0;
  width: 100%;
}
#userEditModal {
}
#roleEditModal {
  max-width: 500px;
}
#visitorEditModal {
  max-width: 500px;
}
.tab-pane .modal-header {
  color: #fff;
  background: var(--primary-color);
  padding: 10px 15px;
}
.tab-pane .modal-header button.btn-close {
  color: #000;
  background-color: #fff;
  opacity: 1;
}
/* Footer */
footer {
  font-size: 12px;
  color: #000;
  padding: 5px 10px;
  display: flex;
  width: 100%;
  position: sticky;
  top: auto;
  z-index: 999;
  bottom: 0;
  justify-content: center;
  border-top: 3px double var(--primary-color);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.81) 32.33%, rgba(255, 240, 227, 0.22) 116.92%);
  background-image: url(../img/header_bg.png);
  background-size: cover;
  background-color: #fff;
}
.app-status-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.app-status-bar>div {
  display: flex;
  flex-direction: row;
  align-items: center;
  line-height: 16px;
  text-transform: uppercase;
}

.app-status-bar>div:not(:last-child):after {
  margin: 0 10px;
  content: '|';
}
.app-status-bar img{
  height: 14px;
  margin-right: 5px;
}



/**** School and Group*****/
#groupTable th, #groupTable td,
#schoolTable th, #schoolTable td {
  white-space: nowrap !important;
}


.form-switch-btn {
  border: 1px solid var(--primary-color);
  background: #fff;
  color: var(--primary-color);
  min-width: 150px;
  font-size: 16px;
  padding: 9px 10px;
}
.form-switch-btn.btn:active, 
.form-switch-btn.btn:focus, 
.form-switch-btn.btn.active.focus, 
.form-switch-btn.btn.active:focus, 
.form-switch-btn.btn.focus, 
.form-switch-btn.btn:active.focus, 
.form-switch-btn.btn:active:focus, 
.form-switch-btn.btn:focus,
.form-switch-btn.active,
.form-switch-btn:hover {
  border: 1px solid var(--primary-color);
  background: var(--primary-color);
  color: #fff;
}


.print-pass {
  width: 100%;
  font-family: 'Noto Sans Gujarati', sans-serif;
  max-width: 600px;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
}
.pass-table .border-top {
  border-top: 1px solid #000 !important;
}
.pass-table .border-bottom {
  border-bottom: 1px solid #000 !important;
}
.pass-table .border-left {
  border-left: 1px solid #000 !important;
}
.pass-table .border-right {
  border-right: 1px solid #000 !important;
}
.pass-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  border: 2px solid #000;
}
.pass-table td {
  padding: 5px 5px;
  text-align: center;
  border-bottom: 1px solid #000;
  color: #000;
  position: relative;
}
.pass-table  td.value.fee-dropdown::before {
  content: none;
  position: absolute;
  left: auto;
  right: 5px;
  top: 9px;
  bottom: auto;
}
.pass-table td.value::before {
  content: 'x';
  position: absolute;
  left: auto;
  right: 2px;
  top: auto;
  bottom: 0;
}
.pass-table .no-math::before {
  content: none !important;
}
.pass-table tr.tr_space {
  padding: 10px;
  display: block;
  text-align: center;
}
.pass-table tr.tr_space td {
  padding: 0;
  text-align: center;
  border: 0;
  font-size: 20px;
  font-weight: 700;
  display: block;
}
.pass-table td:not(:last-child){
  border-right: 1px solid #000;
}
.pass-table  td.value.fee-dropdown span {
  margin-left: 10px;
  color: #000;
}
.pass-table td.value.fee-dropdown {
  border-bottom-width: 1px;
  width: 90px;
}
.pass-table .title {
  font-size: 32px;
  font-weight: bold;
  color: #000;
  text-align: center;
  border-radius: 10px;
  padding: 10px;
  text-decoration: underline;
  border-bottom: 2px solid #000;
  padding-bottom: 2px;
}
.pass-table .subtitle {
  font-size: 26px;
  font-weight: bold;
  color: #000;
  text-align: center;
  padding: 0;
  padding-top: 5px;
  border-right: 1px solid #000;
}
.pass-table .name {
  font-size: 18px;
  font-weight: bold;
  padding: 10px 5px 5px;
}
.pass-table .label {
  font-weight: bold;
  color: #000;
  text-align: right;
  font-size: 18px;
}
.pass-table .bold {
  font-weight: bold;
}
.pass-table .date {
  font-size: 18px;
  vertical-align: middle;
  padding: 4px 5px 0;
}
.pass-table .value {
  font-size: 18px;
  font-weight: bold;
  width: 70px;
  border-bottom-width: 2px;
}
.pass-table tr:last-child td{
  border-width: 2px;
  border-color: #000;
}
.pass-table .calc {
  font-size: 18px;
  font-weight: bold;
  width: 130px;
  border-bottom-width: 2px;
}
.pass-table .total {
  font-size: 20px;
}
.pass-table select.form-select.fee-select {
  width: auto;
  text-align: center;
  position: relative;
  background-position: right center;
  background-repeat: no-repeat;
  padding: 0 5px;
  font-weight: 600;
  margin: 0 auto;
  padding-right: 16px;
  border-color: #000;
}

@media print {
  body {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .modal {
    position: static !important;
  }

  .modal-dialog,
  .modal-content {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
  }

  .modal-header,
  .modal-footer,
  button,
  .btn-close {
    display: none !important;
  }

  /* Only passBody should print */
  #passBody {
    display: block !important;
  }
}



.village-wrapper {
  position: relative;
  width: 100%;
}

.village-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #ddd;
  border-top: none;
  z-index: 999;
  max-height: 180px;
  overflow-y: auto;
  display: none;
}

.village-dropdown div {
  padding: 8px 12px;
  cursor: pointer;
}

.village-dropdown div:hover,
.village-dropdown div.active {
  background: var(--primary-color);
  color: #fff;
}





@media (max-width:1800px){
  .col-md-6 {
    flex: 0 0 auto;
    width: 100%;
  }
}
@media (max-width:1600px){
  .col-md-4 {
    flex: 0 0 auto;
    width: 50%;
  }
  #addressForm  .col-md-5 {
    flex: 0 0 auto;
    width: 50%;
  }

  #addressForm  .col-md-2 {
    flex: 0 0 auto;
    width: 100%;
    display: flex;
  }
}
@media (max-width:1440px){
  #content-user-role_permission .vd_field {
    align-items: flex-start;
    flex-direction: column;
  }
  #content-user-role_permission .vd_field_label {
    flex: 0 0 100%;
    margin-bottom: 10px;
  }
  #dynamicvisitorfeeTables  .col-md-3,
  #dynamicTables  .col-md-3 {
    width: 50%;
  }
}
@media (max-width:1200px){
  .form-control {
    padding: 4px .75rem;
  }
  .mb-3 {
    margin-bottom: 10px !important;
  }
  .sidebar {
    width: 150px;
  }
  .content {
    width: calc(100% - 150px);
  }
  .tab_btn_content {
    padding: 15px;
  }
  .tab_btn_content a.tab_btn:not(:last-child) {
    margin-right: 20px;
    padding-right: 20px;
  }
  .tab_btn_content img {
    max-width: 30px;
  }
  .tab-pane .nav-tabs .nav-link {
    padding: 8px 10px;
  }
  .dtfilter [type="search"] {
    max-width: 105px;
  }
  table.dataTable tr:first-child th {
    white-space: nowrap;
    font-size: 12px;
  }
  .sidebar .nav-link {
    padding: 5px 0.8rem;
  }
  .app-status-bar>div {
    line-height: 1;
    padding: 3px 0;
    font-size: 12px;
  }
}
@media (max-width:991px){
  .col-md-4,.col-md-9,.col-md-3,#addressForm .col-md-5 {
    width: 100%;
  }
  .navbar>.container-fluid>* {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  #menu {
    display: flex;
    justify-content: flex-start;
  }
  #user-profile {
    justify-content: flex-end;
  }
  #logoutBtn {
    margin: 0;
  }
  .tab_btn_content a.tab_btn:not(:last-child) {
    margin-right: 15px;
    padding-right: 15px;
  }
  .form-control,.vd_field_input {
    font-size: 14px;
  }
  .mb-3 {
    margin-bottom: 13px !important;
  }
  .content {
    width: 100%;
  }
  .container-fluid>.tab-content>.tab-pane {
    padding: 15px 0 !important;
  }
  .sidebar{
    background: #fff6e5 none repeat scroll 0 0;
    height: 100%;
    left: -100%;
    right: 0;
    margin-left: 0;
    overflow: auto;
    padding: 20px;
    position: fixed;
    width: 270px;
    z-index: 99999;
    text-align: center;
    display: flex;
    flex-direction: column;
    top: 0;
    -webkit-transition: .5s;
    -moz-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    justify-content: flex-start;
    padding-top: 40px;
    border: 1px solid var(--primary-color);
    border-left: 0;
    box-shadow: 4px 0 15px 0px #a3a3a3;
  }
  .sidebar.active{
    left: 0;
  }

  button.menu-toggle {
    width: auto;
    margin: 0;
  }
  .sidebar .menu-icon {
    background: #fff;
    border: 1px solid var(--primary-color);
    border-radius: 100%;
    position: absolute;
    left: auto;
    right: 10px;
    top: 10px;
    color: var(--primary-color);
    height: 24px;
    width: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 22px;
    font-size: 12px;
  }
  .tab-pane .nav-tabs {
    flex-wrap: nowrap;
    overflow: auto;
  }
  .tab-pane .nav-tabs .nav-link {
    flex-wrap: nowrap;
    white-space: nowrap;
  }


  .dtfilter [type="search"] {
    max-width: 140px;
  }
  .dt_action {
    flex-wrap: wrap;
  }
  .dt_action>*:not(:first-child) {
    flex-basis: auto;
  }
  .form-switch-btn {
    min-width: auto;
    font-size: 14px;
    padding: 5px 10px;
  }

  .modal-title {
    font-size: 16px;
  }

}
@media (max-width:767px){
  .p-3 {
    padding: 10px !important;
  }
  #dynamicvisitorfeeTables .col-md-3, #dynamicTables .col-md-3 {
    width: 100%;
  }
  .user_lable strong {
    display: none;
  }
  a#logoutBtn {
    margin-left: 0 !important;
  }
  .tab_btn_content {
    padding: 0;
    flex-wrap: wrap;
    border-radius: 0;
  }
  .tab_btn_content img {
    max-width: 20px;
    margin-bottom: 0;
    margin-right: 5px;
  }
  .tab_btn_content a.tab_btn:not(:last-child) {
    margin-right: 0;
    padding-right: 0;
  }
  .tab_btn_content a.tab_btn {
    flex-direction: row;
    flex-basis: auto;
    line-height: 1;
    padding: 5px 10px !important;
    border: 1px solid var(--primary-color) !important;
    flex-grow: 1;
  }
  .app-status-bar>div {
    line-height: 1;
    padding: 3px 0;
    font-size: 10px;
  }
  .app-status-bar strong {
    display: none;
  }
  .app-status-bar>div:nth-last-child(-n+2),
  .app-status-bar>div:nth-child(2) {
    display: none;
  }
  .app-status-bar>div:nth-last-child(-n+3):after {
    content: none;
  }
  .table-responsive .dataTables_wrapper .dataTables_info {
    padding: 10px 5px 0;
  }
  .table-responsive .dataTables_wrapper .dataTables_paginate {
    padding: 0px 10px 10px;
    justify-content: center;
  }

  .date-range {
    display: flex;
    flex-basis: 100%;
    justify-content: flex-end;
    margin-bottom: 10px;
  }
}
@media (max-width:479px){
  .card-body {
    padding: 12px;
  }
  .vd_field_label {
    flex: 0 0 100px;
    text-transform: capitalize;
  }
  .tab_btn_content a.tab_btn {
    min-width: 50%;
  }
  .excel-dropdown,#ui-datepicker-div {
    margin: 0 auto;
    left: 0 !important;
    right: 0 !important;
  }
  #page .dataTables_wrapper .dataTables_paginate .paginate_button {
    width: 24px;
    height: 24px;
    font-size: 12px;
    line-height: 1;
}
/*  .vd_field_label {
    flex: 0 0 100%;
    padding-right: 0;
    margin-bottom: 5px;
  }
  .vd_field {
    align-items: flex-start;
    flex-direction: column;
    align-content: flex-start;
  }*/

}



/* Remove extra border gap */
.dataTables_scrollBody {
    border-bottom: 0 !important;
}

/* Hide footer scroll */
.dataTables_scrollFoot {
    overflow: hidden !important;
}

/* Make whole wrapper scroll properly */
.dataTables_scroll {
    overflow: auto;
}

/* Remove double scrollbar */
.dataTables_scrollBody::-webkit-scrollbar {
    height: 8px;
}


.chart-container {
    position: relative;
    height: 400px;   /* Fixed height */
}

.total-box {
    background: #f8fafc;
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.total-box h2 {
    font-size: 32px;
    font-weight: bold;
    margin-top: 10px;
}


.city-wrapper {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.city-chart-box {
    flex: 1;
    min-height: 400px;
    background: #fff;
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}

.city-list-box {
    flex: 1;
    max-height: 350px;
    overflow-y: auto;
}

.city-list {
    display: flex;
    flex-direction: column;
}

.city-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
    padding: 4px 0;
    border-bottom: 1px solid rgb(238, 238, 238);
    font-size: 12px;
    line-height: 1;
    text-transform: uppercase;
}

.city-top {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}

.city-name {
    font-weight: 600;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.city-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.city-count {
    font-size: 13px;
    font-weight: 600;
}

.city-bar {
    height: 6px;
    background: #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.city-bar-fill {
    height: 100%;
    border-radius: 6px;
}

.chartrange .chartRangePicker input{
    display: flex;
    min-width: 80px;
    position: relative;
    border: 1px solid #cfd4da;
    width: auto;
    font-size: 12px;
    padding: 2px 5px;
    margin-left: 3px;
}
.chartrange {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
@media (max-width: 768px) {
    .city-wrapper {
        flex-direction: column;
    }
}
/* ===== DATERANGEPICKER RESPONSIVE FIX ===== */

body .daterangepicker .ranges li.active,
body .daterangepicker td.active, 
body .daterangepicker td.active.in-range,
body .daterangepicker td.active:hover {
    background-color: var(--primary-color);
    color: #fff;
}
body .daterangepicker td.in-range {
    background-color: #e0a01840;
}
@media (max-width: 767px) {
  body .daterangepicker .ranges ul {
        width: 100%;
    }
  body .daterangepicker {
        width: calc(100% - 46px) !important;
        z-index: 999 !important;
        left: 0 !important;
        right: 0 !important;
        margin: 0 auto;
                box-shadow: 4px 0 15px 0px #a3a3a3;
  }


  body .daterangepicker .drp-calendar {
    float: none !important;
    width: 100% !important;
  }

  body .daterangepicker .ranges {
    width: 100% !important;
    text-align: center;
  }

  body .daterangepicker .ranges li {
    display: inline-block;
    margin: 5px;
    padding: 6px 10px;
  }
}
