/* ProntoVid UI Consistency V1
   Shared, page-scoped visual language based on the compact AI Agents row view.
   This layer intentionally uses high-specificity/!important rules to normalize
   legacy page-local styles without changing application behavior. */

:root {
  --pv-ui-border: #d9e1e7;
  --pv-ui-row-border: #edf0f3;
  --pv-ui-header-bg: #fbfcfd;
  --pv-ui-text: #2d2d39;
  --pv-ui-muted: #64748b;
  --pv-ui-blue: #118dd4;
  --pv-ui-control-h: 38px;
}

/* ---------- Agent workspace tabs: visible everywhere, normal document flow ---------- */
.agent-workspace-nav {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 2rem 0 !important;
  padding: 0 3rem !important;
  border-bottom: 2px solid var(--color-light, #ccc) !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: auto !important;
  transform: none !important;
  background: transparent !important;
}
.agent-workspace-nav a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: .75rem 1.5rem !important;
  color: var(--color-sub, #2d2d39) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.agent-workspace-nav a:hover,
.agent-workspace-nav a.active {
  color: var(--color-sub-light, #118dd4) !important;
}
.agent-workspace-nav a.active::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -2px !important;
  height: 4px !important;
  border-radius: 2px 2px 0 0 !important;
  background: var(--color-sub-light, #118dd4) !important;
}

/* ---------- Compact icon-only row/card toggle ---------- */
.pv-view-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 !important;
  width: auto !important;
  margin-left: auto !important;
  border: 1px solid #d7dee5 !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  background: #fff !important;
}
.pv-view-toggle__btn {
  width: 38px !important;
  min-width: 38px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #4b5563 !important;
  box-shadow: none !important;
}
.pv-view-toggle__btn + .pv-view-toggle__btn {
  border-left: 1px solid #e5e7eb !important;
}
.pv-view-toggle__btn.is-active {
  background: #111827 !important;
  color: #fff !important;
}
.pv-view-toggle__btn svg {
  width: 18px !important;
  height: 18px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  pointer-events: none !important;
}

/* ---------- Shared page tabs ---------- */
.pv-ui-page .settings-nav {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: .35rem 1rem !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 2rem 0 !important;
  padding: 0 3rem !important;
  border-bottom: 2px solid var(--color-light, #ccc) !important;
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  background: transparent !important;
}
.pv-ui-page .settings-nav a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: .75rem 1.25rem !important;
  color: var(--color-sub, #2d2d39) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.pv-ui-page .settings-nav a:hover,
.pv-ui-page .settings-nav a.active {
  color: var(--color-sub-light, #118dd4) !important;
}
.pv-ui-page .settings-nav a.active::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -2px !important;
  height: 4px !important;
  border-radius: 2px 2px 0 0 !important;
  background: var(--color-sub-light, #118dd4) !important;
}

/* ---------- Tables: AI Agents row language ---------- */
.pv-ui-page .settings__table,
.pv-ui-page .agent-table,
.pv-ui-page .review-table,
.pv-ui-page .project-table-wrapper table {
  width: 100% !important;
  border: 1px solid var(--pv-ui-border) !important;
  border-radius: 12px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
}
.pv-ui-page .settings__table th,
.pv-ui-page .agent-table th,
.pv-ui-page .review-table th {
  padding: .9rem 1rem !important;
  border: 0 !important;
  border-bottom: 1px solid var(--pv-ui-row-border) !important;
  background: var(--pv-ui-header-bg) !important;
  color: var(--pv-ui-text) !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  vertical-align: middle !important;
}
.pv-ui-page .settings__table td,
.pv-ui-page .agent-table td,
.pv-ui-page .review-table td,
.pv-ui-page .project-table-wrapper td {
  padding: .9rem 1rem !important;
  border: 0 !important;
  border-bottom: 1px solid var(--pv-ui-row-border) !important;
  color: var(--pv-ui-text) !important;
  font-size: 1.05rem !important;
  line-height: 1.4 !important;
  vertical-align: middle !important;
}
.pv-ui-page .settings__table tbody tr:last-child td,
.pv-ui-page .agent-table tbody tr:last-child td,
.pv-ui-page .review-table tbody tr:last-child td,
.pv-ui-page .project-table-wrapper tbody tr:last-child td {
  border-bottom: 0 !important;
}
.pv-ui-page .settings__table tbody tr:hover td,
.pv-ui-page .agent-table tbody tr:hover td,
.pv-ui-page .review-table tbody tr:hover td {
  background: #fcfdfe !important;
}

/* Help Guide / FAQ topic rows use the same restrained card/table edge. */
.pv-ui-page .project-table-wrapper {
  border: 1px solid var(--pv-ui-border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
.pv-ui-page .project-table-wrapper table {
  border: 0 !important;
  border-radius: 0 !important;
}
.pv-ui-page .help-details-row {
  background: #fbfcfd !important;
}
.pv-ui-page .help-details-content {
  border-top: 1px solid var(--pv-ui-row-border) !important;
  font-size: 1.05rem !important;
  line-height: 1.5 !important;
}

/* ---------- Filters / toolbars ---------- */
.pv-ui-page .pv-filter-row {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: .75rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 1rem 0 1.5rem !important;
  padding: .75rem !important;
  border: 1px solid var(--pv-ui-row-border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.pv-ui-page .pv-filter-row label {
  color: #526579 !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

/* ---------- Form controls ---------- */
.pv-ui-page .input--text,
.pv-ui-page input[type="text"],
.pv-ui-page input[type="email"],
.pv-ui-page input[type="password"],
.pv-ui-page input[type="search"],
.pv-ui-page input[type="date"],
.pv-ui-page input[type="number"],
.pv-ui-page select {
  min-height: var(--pv-ui-control-h) !important;
  box-sizing: border-box !important;
  padding: .55rem .8rem !important;
  border: 1px solid #cbd5df !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--pv-ui-text) !important;
  font: inherit !important;
  font-size: 1.05rem !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}
.pv-ui-page textarea {
  box-sizing: border-box !important;
  padding: .7rem .8rem !important;
  border: 1px solid #cbd5df !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--pv-ui-text) !important;
  font: inherit !important;
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
  box-shadow: none !important;
}
.pv-ui-page .input--text:focus,
.pv-ui-page input[type="text"]:focus,
.pv-ui-page input[type="email"]:focus,
.pv-ui-page input[type="password"]:focus,
.pv-ui-page input[type="search"]:focus,
.pv-ui-page input[type="date"]:focus,
.pv-ui-page input[type="number"]:focus,
.pv-ui-page select:focus,
.pv-ui-page textarea:focus {
  outline: none !important;
  border-color: var(--pv-ui-blue) !important;
  box-shadow: 0 0 0 3px rgba(17,141,212,.12) !important;
}

/* ---------- Buttons / compact controls ---------- */
.pv-ui-page .btn,
.pv-ui-page .settings__btn,
.pv-ui-page .filter-action-btn {
  min-height: var(--pv-ui-control-h) !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  padding: .58rem 1rem !important;
  border-radius: 999px !important;
  font-size: 1.02rem !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.pv-ui-page .btn--sub,
.pv-ui-page .filter-action-btn--primary {
  border-color: var(--pv-ui-blue) !important;
  background: var(--pv-ui-blue) !important;
  color: #fff !important;
}
.pv-ui-page .filter-action-btn--secondary {
  border: 1px solid #cbd5df !important;
  background: #fff !important;
  color: #34485b !important;
}
.pv-ui-page .project-view-switch a,
.pv-ui-page .export-mode-nav a,
.pv-ui-page .token-report-tab,
.pv-ui-page .plan-switcher button,
.pv-ui-page .review-tab {
  font-size: 1.02rem !important;
}

/* ---------- Cards / summaries ---------- */
.pv-ui-page .usage-card,
.pv-ui-page .current-plan-card,
.pv-ui-page .project-limit-card,
.pv-ui-page .ticket-card {
  border: 1px solid var(--pv-ui-border) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
.pv-ui-page .usage-card h4 {
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
}
.pv-ui-page .usage-card p {
  font-size: 1.35rem !important;
}

/* Reduce legacy oversized utility copy without touching primary page titles. */
.pv-ui-page .filters,
.pv-ui-page .filters form,
.pv-ui-page .studio-filters,
.pv-ui-page .settings__table,
.pv-ui-page .table-card {
  color: var(--pv-ui-text) !important;
}
.pv-ui-page .settings__table a:not(.btn),
.pv-ui-page .project-table-wrapper a:not(.btn) {
  font-size: inherit !important;
}

/* Desktop table/card wrappers remain responsive. */
.pv-ui-page .pv-table-scroll,
.pv-ui-page .table-desktop,
.pv-ui-page .agent-table-wrap,
.pv-ui-page .review-table-wrap {
  max-width: 100% !important;
}

/* Mobile */
@media (max-width: 1024px) {
  .agent-workspace-nav,
  .pv-ui-page .settings-nav {
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: .25rem !important;
    margin: 1rem 0 1.25rem !important;
    padding: 0 1rem !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .agent-workspace-nav a,
  .pv-ui-page .settings-nav a {
    padding: .65rem .85rem !important;
    font-size: 1rem !important;
  }
  .pv-ui-page .pv-filter-row {
    align-items: stretch !important;
    padding: .7rem !important;
  }
  .pv-ui-page .pv-filter-row > div {
    flex-basis: 100% !important;
    min-width: 0 !important;
  }
  .pv-ui-page .pv-filter-row input,
  .pv-ui-page .pv-filter-row select {
    width: 100% !important;
  }
}

/* ==========================================================================
   ProntoVid UI Consistency V1.1
   Compact data typography + centered AI Agent info dialog.
   /projects/export/ remains the visual reference: normal data is ~1.05rem,
   secondary copy is ~.95rem, and only true headings are intentionally larger.
   ========================================================================== */

:root {
  --pv-ui-data-size: 1.05rem;
  --pv-ui-data-compact: .95rem;
  --pv-ui-data-emphasis: 1.15rem;
  --pv-ui-section-size: 1.2rem;
}

.agent-info-dialog[open] {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  max-height: calc(100vh - 2rem) !important;
  max-height: calc(100dvh - 2rem) !important;
  overflow: auto !important;
}

body.pv-ui-global:not(.auth-page) .main-content p,
body.pv-ui-global:not(.auth-page) .main-content li,
body.pv-ui-global:not(.auth-page) .main-content td,
body.pv-ui-global:not(.auth-page) .main-content dd {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}
body.pv-ui-global:not(.auth-page) .main-content p strong,
body.pv-ui-global:not(.auth-page) .main-content li strong,
body.pv-ui-global:not(.auth-page) .main-content td strong,
body.pv-ui-global:not(.auth-page) .main-content dd strong {
  font-size: inherit !important;
  line-height: inherit !important;
}
body.pv-ui-global:not(.auth-page) .main-content small,
body.pv-ui-global:not(.auth-page) .main-content .muted,
body.pv-ui-global:not(.auth-page) .main-content .plan-muted,
body.pv-ui-global:not(.auth-page) .main-content .summary-sub,
body.pv-ui-global:not(.auth-page) .main-content .episode-meta,
body.pv-ui-global:not(.auth-page) .main-content .agent-row-sub,
body.pv-ui-global:not(.auth-page) .main-content .review-sub {
  font-size: var(--pv-ui-data-compact) !important;
  line-height: 1.4 !important;
}

body.pv-ui-global:not(.auth-page) .main-content .dev__name {
  font-size: var(--pv-ui-data-emphasis) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .dev__username,
body.pv-ui-global:not(.auth-page) .main-content .dev__email,
body.pv-ui-global:not(.auth-page) .main-content .dev__phone,
body.pv-ui-global:not(.auth-page) .main-content .dev__tz,
body.pv-ui-global:not(.auth-page) .main-content .tz-badge,
body.pv-ui-global:not(.auth-page) .main-content .auth-provider-description,
body.pv-ui-global:not(.auth-page) .main-content .auth-provider-email {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .auth-provider-title,
body.pv-ui-global:not(.auth-page) .main-content .reset-title,
body.pv-ui-global:not(.auth-page) .main-content .close-title {
  font-size: var(--pv-ui-section-size) !important;
  line-height: 1.35 !important;
}

body.pv-ui-global:not(.auth-page) .main-content .usage-card p {
  font-size: var(--pv-ui-data-emphasis) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .usage-card-row .value,
body.pv-ui-global:not(.auth-page) .main-content .settings__table td strong,
body.pv-ui-global:not(.auth-page) .main-content .table-card td strong {
  font-size: var(--pv-ui-data-size) !important;
}

body.pv-ui-global:not(.auth-page) .main-content .billing-section-title,
body.pv-ui-global:not(.auth-page) .main-content .current-plan-card h4,
body.pv-ui-global:not(.auth-page) .main-content .billing-topup h4,
body.pv-ui-global:not(.auth-page) .main-content .plan-card h4,
body.pv-ui-global:not(.auth-page) .main-content .topup-card h5 {
  font-size: var(--pv-ui-section-size) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .plan-price {
  font-size: var(--pv-ui-data-emphasis) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .plan-features,
body.pv-ui-global:not(.auth-page) .main-content .plan-features li,
body.pv-ui-global:not(.auth-page) .main-content .plan-feature-strong,
body.pv-ui-global:not(.auth-page) .main-content .current-plan-card p,
body.pv-ui-global:not(.auth-page) .main-content .billing-topup p,
body.pv-ui-global:not(.auth-page) .main-content .topup-card p {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}

body.pv-ui-global:not(.auth-page) .main-content .studio-empty {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .studio-card h3,
body.pv-ui-global:not(.auth-page) .main-content .studio-modal-top h3,
body.pv-ui-global:not(.auth-page) .main-content .studio-act-delete-title {
  font-size: var(--pv-ui-section-size) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content details.studio-series > summary,
body.pv-ui-global:not(.auth-page) .main-content details.studio-season > summary,
body.pv-ui-global:not(.auth-page) .main-content details.studio-act > summary,
body.pv-ui-global:not(.auth-page) .main-content .tree-summary-main {
  font-size: var(--pv-ui-data-emphasis) !important;
  line-height: 1.4 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .episode-title {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.4 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .studio-filters + div[style*="font-size"] {
  font-size: var(--pv-ui-data-size) !important;
}

body.pv-ui-global:not(.auth-page) .main-content .project-limit-card,
body.pv-ui-global:not(.auth-page) .main-content .project-archive-note,
body.pv-ui-global:not(.auth-page) .main-content .help-details-content,
body.pv-ui-global:not(.auth-page) .main-content .support-msg,
body.pv-ui-global:not(.auth-page) .main-content .ticket-meta-table td,
body.pv-ui-global:not(.auth-page) .main-content .ticket-attachment-link {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .replies-heading,
body.pv-ui-global:not(.auth-page) .main-content .reply-box h4 {
  font-size: var(--pv-ui-section-size) !important;
  line-height: 1.35 !important;
}

body.pv-ui-global:not(.auth-page) .main-content .agent-card h2,
body.pv-ui-global:not(.auth-page) .main-content .agent-panel h2,
body.pv-ui-global:not(.auth-page) .main-content .review-card h2,
body.pv-ui-global:not(.auth-page) .main-content .agent-empty h2,
body.pv-ui-global:not(.auth-page) .main-content .agent-info-head h2 {
  font-size: var(--pv-ui-section-size) !important;
  line-height: 1.35 !important;
}
body.pv-ui-global:not(.auth-page) .main-content .review-title,
body.pv-ui-global:not(.auth-page) .main-content .idea-title,
body.pv-ui-global:not(.auth-page) .main-content .agent-card-desc,
body.pv-ui-global:not(.auth-page) .main-content .agent-specialization {
  font-size: var(--pv-ui-data-size) !important;
  line-height: 1.45 !important;
}

body.pv-ui-global:not(.auth-page) .main-content label,
body.pv-ui-global:not(.auth-page) .main-content th,
body.pv-ui-global:not(.auth-page) .main-content button,
body.pv-ui-global:not(.auth-page) .main-content input,
body.pv-ui-global:not(.auth-page) .main-content select,
body.pv-ui-global:not(.auth-page) .main-content textarea {
  line-height: 1.25;
}

@media (max-width: 720px) {
  .agent-info-dialog[open] {
    width: calc(100vw - 1.5rem) !important;
    max-width: calc(100vw - 1.5rem) !important;
  }
}

/* ==========================================================================
   ProntoVid UI Consistency V1.2
   Dense data typography for the remaining legacy-heavy pages.
   /projects/export/ remains untouched as the visual reference.
   ========================================================================== */
:root {
  --pv-ui-dense-data-size: .88rem;
  --pv-ui-dense-pill-size: .82rem;
  --pv-ui-dense-heading-size: 1rem;
}

/* Projects: project names/category values should read like ordinary table data. */
.pv-ui-projects .settings__table td,
.pv-ui-projects .settings__table td .name-text,
.pv-ui-projects .settings__table td strong,
.pv-ui-projects .project-category-select {
  font-size: var(--pv-ui-dense-data-size) !important;
  line-height: 1.4 !important;
}
.pv-ui-projects .project-limit-card,
.pv-ui-projects .project-archive-note {
  font-size: .92rem !important;
}

/* Token Usage: dense ledger data and compact agent-type pills. */
.pv-ui-token-usage .settings__table td,
.pv-ui-token-usage .settings__table td strong,
.pv-ui-token-usage .usage-card-row .value {
  font-size: var(--pv-ui-dense-data-size) !important;
  line-height: 1.4 !important;
}
.pv-ui-token-usage .agent-pill,
.pv-ui-token-usage .settings__table .agent-pill,
.pv-ui-token-usage .usage-cards-mobile .agent-pill {
  font-size: var(--pv-ui-dense-pill-size) !important;
  line-height: 1.15 !important;
  min-height: 22px !important;
  height: 22px !important;
  padding: 2px 8px 2px 7px !important;
}
.pv-ui-token-usage #tokenReports + div,
.pv-ui-token-usage .token-usage-help {
  font-size: .92rem !important;
}

/* Billing: plan contents are data, not display typography. */
.pv-ui-billing .billing-section-title,
.pv-ui-billing .billing-topup h4,
.pv-ui-billing .current-plan-card h4,
.pv-ui-billing .plan-card h4,
.pv-ui-billing .topup-card h5 {
  font-size: var(--pv-ui-dense-heading-size) !important;
  line-height: 1.35 !important;
}
.pv-ui-billing .plan-price,
.pv-ui-billing .usage-card p {
  font-size: .95rem !important;
  line-height: 1.35 !important;
}
.pv-ui-billing .plan-features,
.pv-ui-billing .plan-features li,
.pv-ui-billing .plan-feature-strong,
.pv-ui-billing .current-plan-card p,
.pv-ui-billing .plan-muted,
.pv-ui-billing .billing-topup p,
.pv-ui-billing .topup-card,
.pv-ui-billing .topup-card p,
.pv-ui-billing .custom-range-modal {
  font-size: var(--pv-ui-dense-data-size) !important;
  line-height: 1.4 !important;
}
.pv-ui-billing .plan-check,
.pv-ui-billing .popular-badge,
.pv-ui-billing .plan-badge {
  font-size: var(--pv-ui-dense-pill-size) !important;
}

/* ==========================================================================
   ProntoVid UI Consistency V1.5
   Result-count and progressive-loading text follows ordinary table data scale.
   ========================================================================== */
body.pv-ui-global:not(.auth-page) .main-content .project-lazy-loader,
body.pv-ui-global:not(.auth-page) .main-content .export-lazy-loader,
body.pv-ui-global:not(.auth-page) .main-content .token-lazy-loader,
body.pv-ui-global:not(.auth-page) .main-content .billing-lazy-loader {
  font-size: var(--pv-ui-data-size, 1.05rem) !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
}

