/* Haven Desktop - Custom Styles for Dark Theme */

/* Container */
.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container { max-width: 540px; }
}
@media (min-width: 768px) {
  .container { max-width: 720px; }
}
@media (min-width: 992px) {
  .container { max-width: 960px; }
}
@media (min-width: 1200px) {
  .container { max-width: 1140px; }
}

/* DataTable responsive */
@media screen and (max-width: 960px) {
  .p-datatable.p-datatable-responsive-stack .p-datatable-tbody > tr {
    display: block !important;
    margin-bottom: 1.2rem;
  }
  .p-menubar.inline-menu .p-menubar-button {
    display: none;
  }
  .p-menubar.inline-menu {
    position: inherit;
  }
  .p-menubar.inline-menu .p-menubar-root-list {
    display: flex;
    align-items: center;
    position: unset;
    padding: unset;
    background: inherit;
    border: unset;
    box-shadow: unset;
    width: unset;
  }
  .p-menubar.inline-menu .p-menubar-root-list > .p-menuitem {
    width: auto !important;
  }
}

/* Paginator */
.paginator-flat .p-paginator {
  background-color: var(--surface-card) !important;
  border: none !important;
  border-top: 1px solid var(--surface-border) !important;
}

/* Toast */
.p-toast.p-toast-top-right {
  z-index: 1000;
  top: 56px;
}

/* Editable cells */
::v-deep(.editable-cells-table td.p-cell-editing) {
  padding-top: 0;
  padding-bottom: 0;
}

/* SplitButton */
.p-splitbutton.dropdown-only {
  padding: 0 !important;
  min-width: auto !important;
}
.dropdown-only .p-splitbutton-defaultbutton {
  display: none;
}

/* Table headers */
.p-table-head th {
  padding: 8px;
}

.img-fluid {
  max-width: 100% !important;
}
.text-capitalize {
  text-transform: capitalize;
}

/* Reset grids in dialogs */
.reset-grid .container .comp-grid,
.reset-grid .container-fluid .comp-grid,
.p-dialog .container .comp-grid,
.p-dialog .container-fluid .comp-grid,
.p-sidebar .container .comp-grid,
.p-sidebar .container-fluid .comp-grid {
  max-width: 100% !important;
  width: 100% !important;
}

#master-detailpage {
  scroll-margin-top: 10px;
}

/* Search results */
.search-result-holder {
  max-width: 90vw;
  position: absolute;
  z-index: 10000;
  width: 360px;
  background-color: var(--surface-overlay);
  border: 1px solid var(--surface-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.search-result-holder .result-list {
  max-height: 400px;
  overflow: auto;
}

.ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Shadows - dark theme optimized */
.nice-shadow-1 {
  box-shadow: 0 2px 8px rgba(0,0,0,0.3) !important;
}
.nice-shadow-2 {
  box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important;
}
.nice-shadow-3 {
  box-shadow: 0 1px 4px rgba(0,0,0,0.4) !important;
}
.nice-shadow-4 {
  box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;
}
.nice-shadow-5 {
  box-shadow: 0 1px 4px rgba(0,0,0,0.3) !important;
}
.nice-shadow-6 {
  box-shadow: 0 4px 16px rgba(0,0,0,0.25), 0 0 0 1px rgba(255,255,255,0.05) !important;
}
.nice-shadow-7 {
  box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.05) !important;
}
.nice-shadow-8 {
  box-shadow: 0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05) !important;
}
.nice-shadow-9 {
  box-shadow: 0 32px 64px rgba(0,0,0,0.4) !important;
}
.nice-shadow-10 {
  box-shadow: 0 32px 64px rgba(0,0,0,0.5) !important;
}

/* Card hover effects */
.card-hover {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}

/* Scrollbar styling for dark theme */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: var(--surface-ground);
}
::-webkit-scrollbar-thumb {
  background: var(--surface-300);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--surface-400);
}

/* PrimeVue DataTable dark theme refinements */
.p-datatable .p-datatable-thead > tr > th {
  background: var(--surface-card) !important;
  border-color: var(--surface-border) !important;
}

.p-datatable .p-datatable-tbody > tr {
  background: var(--surface-card) !important;
  border-color: var(--surface-border) !important;
}

.p-datatable .p-datatable-tbody > tr:hover {
  background: var(--surface-hover) !important;
}

/* Dialog dark theme refinements */
.p-dialog {
  background: var(--surface-card) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.4) !important;
}

.p-dialog .p-dialog-header {
  border-bottom: 1px solid var(--surface-border) !important;
  padding: 16px 20px !important;
}

.p-dialog .p-dialog-content {
  padding: 20px !important;
}

/* Card refinements */
.p-card {
  background: var(--surface-card) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 12px !important;
}

/* Button refinements */
.p-button.p-button-outlined {
  border-color: var(--surface-border) !important;
}

/* Input refinements */
.p-inputtext {
  background: var(--surface-overlay) !important;
  border-color: var(--surface-border) !important;
}

.p-inputtext:hover {
  border-color: var(--primary-color) !important;
}

.p-inputtext:focus {
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 2px rgba(129,140,248,0.2) !important;
}

/* Dropdown refinements */
.p-dropdown {
  background: var(--surface-overlay) !important;
  border-color: var(--surface-border) !important;
}

.p-dropdown-panel {
  background: var(--surface-overlay) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3) !important;
}

/* Calendar refinements */
.p-datepicker {
  background: var(--surface-overlay) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3) !important;
}

/* TabView refinements */
.p-tabview .p-tabview-nav {
  background: transparent !important;
  border-color: var(--surface-border) !important;
}

.p-tabview .p-tabview-nav li .p-tabview-nav-link {
  background: transparent !important;
  border-color: transparent !important;
}

.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {
  border-color: var(--primary-color) !important;
}

.p-tabview .p-tabview-panels {
  background: transparent !important;
  padding: 16px 0 !important;
}

/* Panel refinements */
.p-panel {
  background: var(--surface-card) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 12px !important;
}

.p-panel .p-panel-header {
  background: transparent !important;
  border-bottom: 1px solid var(--surface-border) !important;
  padding: 12px 16px !important;
}
