/* ================================================================
   VSM Localization · Legacy overrides
   Loaded last — only keeps what theme.css / additions.css don't cover.
   ================================================================ */

/* Spinner */
.spinner {
    -webkit-animation: rotator 1.4s linear infinite;
    animation: rotator 1.4s linear infinite;
}

@-webkit-keyframes rotator {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(270deg); }
}
@keyframes rotator {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(270deg); }
}

.path {
    stroke-dasharray: 187;
    stroke-dashoffset: 0;
    transform-origin: center;
    -webkit-animation: dash 1.4s ease-in-out infinite, colors 5.6s ease-in-out infinite;
    animation: dash 1.4s ease-in-out infinite, colors 5.6s ease-in-out infinite;
}

@-webkit-keyframes colors {
    0%, 25%, 50%, 75%, 100% { stroke: var(--bs-primary); }
}
@keyframes colors {
    0%, 25%, 50%, 75%, 100% { stroke: var(--bs-primary); }
}

@-webkit-keyframes dash {
    0% { stroke-dashoffset: 187; }
    50% { stroke-dashoffset: 46.75; transform: rotate(135deg); }
    100% { stroke-dashoffset: 187; transform: rotate(450deg); }
}
@keyframes dash {
    0% { stroke-dashoffset: 187; }
    50% { stroke-dashoffset: 46.75; transform: rotate(135deg); }
    100% { stroke-dashoffset: 187; transform: rotate(450deg); }
}

/* Layout */
.main-content {
    padding: 1rem;
    margin-top: 2rem;
}

/* Time tracking — shared utilities (used across multiple templates) */
.zt-nav-bar {
  background: #fff;
  border-radius: var(--bs-border-radius-lg);
  padding: 0.75rem 1.25rem;
  box-shadow: var(--bs-box-shadow);
  margin-bottom: 1rem;
}
.zt-week-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 0.9rem;
  border-right: 1px solid var(--bs-border-color);
  min-width: 64px;
}
.zt-week-stat:last-child { border-right: none; }
.zt-stat-label {
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--bs-tertiary-color);
}
.zt-stat-val {
  font-size: 0.95rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.zt-section-label {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bs-tertiary-color);
  font-weight: 600;
  margin-bottom: 0.75rem;
}

/* Inline spin (loading indicators in time tracking) */
@keyframes spin { to { transform: rotate(360deg); } }
.spin { display: inline-block; animation: spin 0.9s linear infinite; }

/* DataTables — column-search footer (shared across all DataTable pages) */
tfoot input {
    width: 100%;
    padding: 3px;
    box-sizing: border-box;
}
tfoot {
    display: table-header-group;
}

/* Tables */
.vsm-table {
    font-size: 0.875rem;
}

.vsm-table th, .vsm-table td {
    padding: 0.35rem 0.5rem;
}

.vsm-table td {
    white-space: normal;
    overflow: hidden;
    word-break: break-word;
}
