/* Vuetify Global Overrides */

:root {
  --v-shadow-key-umbra-opacity: rgba(var(--v-theme-secondary), 0);
  --v-shadow-key-penumbra-opacity: rgba(var(--v-theme-secondary), 0.05);
  --v-shadow-key-ambient-opacity: rgba(var(--v-theme-secondary), 0.05);
  --v-font-family: "Mulish", sans-serif;
}

.v-theme--dark { 
  --v-theme-background: 10, 10, 10 !important; 
}
.v-theme--light { 
  --v-theme-background: 245, 245, 245 !important; 
}

/* Premium Dynamic Background Gradient */
.v-application {
  background: rgb(var(--v-theme-background)) !important;
  position: relative;
  overflow: hidden;
}

.v-application::before {
  content: "";
  position: fixed;
  inset: 0;
  background: 
    radial-gradient(circle at 0% 0%, color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 88%) 0%, transparent 60%),
    radial-gradient(circle at 100% 0%, color-mix(in srgb, rgb(var(--v-theme-secondary)), transparent 92%) 0%, transparent 50%),
    radial-gradient(circle at 0% 100%, color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 92%) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}

/* Gentle Desktop Animation */
@media (min-width: 960px) {
  .v-application::before {
    animation: background-pulse 15s ease-in-out infinite alternate;
  }
}

@keyframes background-pulse {
  0% {
    transform: scale(1) translate(0, 0);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.05) translate(1%, 1%);
    opacity: 1;
  }
  100% {
    transform: scale(1) translate(0, 0);
    opacity: 0.8;
  }
}

/* Standard Solid Backgrounds */

/* Button & Toggle Overrides */
.v-btn-toggle .v-btn:not(.v-btn--active) { 
  background: rgba(var(--v-theme-primary), 0.1); 
  color: rgb(var(--v-theme-primary)); 
}

.v-btn-group, .v-btn-toggle {
  border-radius: 24px !important; /* xl radius */
  overflow: hidden;
  border: none !important;
}

.v-btn-group .v-btn, .v-btn-toggle .v-btn {
  border-radius: 0 !important;
  border-right: none !important;
}

.v-btn-group .v-btn:last-child, .v-btn-toggle .v-btn:last-child {
  border-right: none !important;
}

.v-btn-group .v-btn:first-child, .v-btn-toggle .v-btn:first-child {
  border-top-left-radius: 24px !important;
  border-bottom-left-radius: 24px !important;
}

.v-btn-group .v-btn:last-child, .v-btn-toggle .v-btn:last-child {
  border-top-right-radius: 24px !important;
  border-bottom-right-radius: 24px !important;
}

.rounded-lg { 
  border-radius: 16px !important; 
}

/* Card Gradient Overrides */
.v-card--gradient {
  background: rgb(var(--v-theme-surface)) !important;
  position: relative;
  isolation: isolate;
}

.v-card--gradient::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 99.2%) 0%, transparent 25%);
  pointer-events: none;
  z-index: -1;
}

:deep(.v-theme--dark) .v-card--gradient::before {
  background: linear-gradient(135deg, color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 96%) 0%, transparent 40%);
}

/* Table Overrides */
.v-table, .v-data-table {
  border-radius: 16px !important; /* lg radius */
  overflow: hidden;
}

.v-table.v-table--fixed-header > .v-table__wrapper > table > thead > tr > th { 
  position: relative; 
}

.table-fixed .v-table__wrapper table { 
  table-layout: fixed; 
}

.table-fixed .v-data-table__th, 
.table-fixed .v-data-table__td { 
  max-width: 250px; 
  width: 250px; 
}

.table-fixed .v-data-table__th:first-child, 
.table-fixed .v-data-table__td:first-child { 
  max-width: 64px; 
  width: 64px; 
}

.v-table.v-table--fixed-header > .v-table__wrapper > table > thead > tr > th:after {
  content: ""; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%;
  background-color: rgba(var(--v-theme-primary), var(--v-activated-opacity));
  position: absolute; 
  pointer-events: none;
}

.v-data-table-rows-no-data,
.v-data-table-rows-loading {
  display: none !important;
}

.v-data-table__td, 
.v-data-table__th, 
.v-data-table-column--fixed { 
  padding: 0px !important; 
  border: none !important; 
}

.table-fixed .v-data-table__th.v-data-table-column--fixed, 
.table-fixed .v-data-table__td.v-data-table-column--fixed { 
  background-color: rgba(var(--v-theme-surface), 1) !important; 
}

/* Zebra Striping (Even/Odd) - Solid calculated colors */
.v-table .v-table__wrapper > table > tbody > tr,
.v-table .v-table__wrapper > table > tbody > tr > .v-data-table-column--fixed {
  transition: none !important;
}

.v-table .v-table__wrapper > table > tbody > tr:nth-child(even) {
  background-color: color-mix(in srgb, rgb(var(--v-theme-surface)), rgb(var(--v-theme-on-surface)) 2%) !important;
}

.v-table .v-table__wrapper > table > tbody > tr:nth-child(even) > .v-data-table-column--fixed {
  background-color: color-mix(in srgb, rgb(var(--v-theme-surface)), rgb(var(--v-theme-on-surface)) 2%) !important;
}

/* Base fixed column color for odd rows */
.v-table .v-table__wrapper > table > tbody > tr:nth-child(odd) > .v-data-table-column--fixed {
  background-color: rgb(var(--v-theme-surface)) !important;
}

.v-table .v-table__wrapper > table > tbody > tr:nth-child(odd) {
  background-color: rgb(var(--v-theme-surface)) !important;
}

.v-table .v-table__wrapper > table > tbody > tr:hover,
.v-table .v-table__wrapper > table > tbody > tr:hover > .v-data-table-column--fixed {
  background-color: color-mix(in srgb, rgb(var(--v-theme-surface)), rgb(var(--v-theme-primary)) 5%) !important;
}

.table-fixed .v-data-table__th:first-child, 
.table-fixed .v-data-table__td:first-child { 
  padding-left: 10px !important; 
}

/* File Upload */
.v-file-upload-hidden { 
  display: none !important; 
}

/* Form Fields Refinements */
:root {
  --field-height: 40px;
  --field-padding-x: 12px;
}

.v-field--variant-outlined {
  transition: all 0.2s ease-in-out !important;
  min-height: var(--field-height) !important;
  height: var(--field-height) !important;
}

.v-field--variant-outlined.field-dynamic-height {
  height: auto !important;
  min-height: var(--field-height) !important;
}

.v-field--variant-outlined .v-field__input {
  min-height: var(--field-height) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center !important;
}

.field-dynamic-height .v-field__input {
  height: auto !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* Matching Read Mode Container */
.field-read-container {
  min-height: var(--field-height) !important;
  height: var(--field-height) !important;
  display: flex !important;
  align-items: center !important;
  padding-left: var(--field-padding-x) !important;
  padding-right: var(--field-padding-x) !important;
  border: 1px solid transparent !important; /* Matches outlined box model */
}

.field-read-container.field-dynamic-height {
  height: auto !important;
  display: block !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

.v-field--variant-outlined .v-field__outline {
  --v-field-border-opacity: 0.15 !important;
}

.v-field--variant-outlined:hover .v-field__outline {
  --v-field-border-opacity: 0.3 !important;
}

.v-field--focused.v-field--variant-outlined .v-field__outline {
  --v-field-border-opacity: 1 !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 85%) !important;
}

/* Fix Validation Error Layout Shift */
.v-input__details {
  position: absolute !important;
  padding-top: 0 !important;
  min-height: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
  bottom: -18px;
  left: 0;
  pointer-events: none;
  z-index: 1;
}

.v-messages__message {
  font-size: 10px !important;
  line-height: 1 !important;
  white-space: nowrap;
}

/* Denser UI Spacing */
.v-row {
  margin: -4px !important;
}

.v-col {
  padding: 4px !important;
}

.v-card-text {
  padding: 8px !important;
}

.v-card-item {
  padding: 8px 12px !important;
}

.v-label.v-field-label {
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}

/* Checkbox & Selection Controls */
.v-selection-control {
  color: rgb(var(--v-theme-primary)) !important;
}

.v-selection-control--disabled {
  opacity: 0.5 !important;
}

/* AppBar & Tabs */
.v-toolbar__prepend {
  margin-inline: 0px auto !important;
}

.custom-tabs .v-tab--selected {
  background: rgba(var(--v-theme-primary), 0.1) !important;
}

.custom-tabs .v-tab {
  min-width: 0 !important;
  letter-spacing: normal !important;
}

.lang-select .v-field__input {
  padding-top: 0 !important;
  min-height: auto !important;
}

/* Right Sidebar Specific Tabs */
.custom-tabs-right .v-tab {
  min-width: 36px !important;
  padding: 0 !important;
  opacity: 0.6;
  transition: all 0.2s ease;
}

.custom-tabs-right .v-tab--selected {
  opacity: 1;
  background: color-mix(in srgb, rgb(var(--v-theme-primary)), transparent 90%) !important;
  color: rgb(var(--v-theme-primary)) !important;
}

:deep(.v-theme--dark) .custom-tabs-right .v-tab--selected {
  background: rgba(255, 255, 255, 0.1) !important;
  color: white !important;
}

/* Kanban Overrides */
.sortable-chosen .v-card {
  transform: rotateZ(-5deg);
}

.card-placeholder .v-card {
  opacity: 1 !important;
  transform: rotateZ(0deg);
  border: dashed 2px #333333 !important;
}

.card-placeholder .v-card > * {
  opacity: 0 !important;
}

/* Calendar (VueCal Overrides for Vuetify) */
.vuecal__menu,
.vuecal__cell-events-count {
  background-color: transparent !important;
}
.vuecal__cell--today,
.vuecal__cell--current {
  background-color: rgba(var(--v-theme-primary), 0.1) !important;
}
.vuecal,
.vuecal__cell {
  border-color: rgba(var(--v-border-color), var(--v-border-opacity)) !important;
}

/* Gantt Overrides */
.g-gantt-chart {
  background: none !important;
  border-radius: 0 !important;
}
.g-gantt-row > .g-gantt-row-bars-container,
.g-grid-line {
  border-color: rgba(var(--v-border-color), var(--v-border-opacity)) !important;
}
