/* =============================================
   Lebenslauf V3 – Premium (quelltemp/lebenslauf-v3-premium.css)
   + BewerbungsFix Bundle / Vorschau
   ============================================= */

.resume-premium-v3 {
  --dark: #1a1a1a;
  --gray-bg: #f0f0f0;
  --photo-bg: #333333;
  --label-color: #999999;
  --text-body: #555555;
  --border-color: #cccccc;
  --dot-inactive: #d1d1d1;
  --bullet-color: #9ca3af;

  --page-width: 210mm;
  --page-height: 297mm;
  --sidebar-width: 68mm;

  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-size-xxs: 9px;
  --font-size-xs: 10px;
  --font-size-sm: 11px;
  --font-size-base: 12px;
  --font-size-body: 10.5px;
  --font-size-name: 38px;
  --font-size-section: 11px;
  --font-size-sidebar-title: 10px;
  --font-size-sidebar-label: 9px;

  --timeline-date-width: 90px;
  --timeline-line-column: 14px;
  --timeline-dot-size: 8px;
  --timeline-dot-border: 2px;
  --timeline-line-width: 1px;

  --skill-dot-size: 8px;

  --spacing-xs: 4px;
  --spacing-sm: 6px;
  --spacing-md: 12px;
  --spacing-lg: 20px;
  --spacing-xl: 24px;
  --spacing-xxl: 40px;
}

.resume-premium-v3 *,
.resume-premium-v3 *::before,
.resume-premium-v3 *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.resume-premium-v3 {
  font-family: var(--font-family);
  color: var(--dark);
  line-height: 1.5;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.resume-premium-v3 img {
  max-width: 100%;
}

.resume-premium-v3 a,
.resume-premium-v3 p,
.resume-premium-v3 span,
.resume-premium-v3 li,
.resume-premium-v3 div,
.resume-premium-v3 h1,
.resume-premium-v3 h2,
.resume-premium-v3 h3 {
  overflow-wrap: anywhere;
  word-wrap: break-word;
  hyphens: auto;
}

.rv3-page {
  width: var(--page-width);
  min-height: var(--page-height);
  margin: 32px auto;
  display: flex;
  background: #fff;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  overflow: visible;
  break-inside: avoid-page;
}

.rv3-sidebar,
.rv3-sidebar--page2 {
  width: var(--sidebar-width);
  flex-shrink: 0;
  background: var(--gray-bg);
}

.rv3-sidebar {
  display: flex;
  flex-direction: column;
}

/* Foto: volle Sidebar-Breite, oben links bündig (Spaltenrand = 68mm) */
.rv3-photo-wrap {
  width: 100%;
  flex-shrink: 0;
  align-self: stretch;
  background: var(--photo-bg);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  box-sizing: border-box;
}

.rv3-photo-wrap:not(.rv3-photo-wrap--placeholder) {
  min-height: 0;
}

.rv3-photo-wrap--placeholder {
  min-height: 84mm;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rv3-photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 84mm;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    var(--photo-bg);
}

.rv3-photo {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: left top;
  filter: grayscale(100%);
}

.rv3-sidebar__body,
.rv3-sidebar--page2 {
  padding: var(--spacing-xl) var(--spacing-lg) var(--spacing-xl);
}

.rv3-sidebar__body {
  flex: 1;
}

.rv3-sidebar-title {
  font-size: var(--font-size-sidebar-title);
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--dark);
  padding-bottom: var(--spacing-sm);
  margin-bottom: var(--spacing-md);
  border-bottom: 1px solid var(--border-color);
}

.rv3-sidebar-section {
  margin-bottom: var(--spacing-xl);
}

.rv3-sidebar-item {
  margin-bottom: var(--spacing-sm);
}

.rv3-sidebar-label {
  font-size: var(--font-size-sidebar-label);
  color: var(--label-color);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.rv3-sidebar-value {
  font-size: var(--font-size-sm);
  color: var(--dark);
}

.rv3-skill-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-sm);
}

.rv3-skill-name {
  font-size: var(--font-size-sm);
  color: var(--dark);
  min-width: 0;
  flex: 1;
}

.rv3-skill-dots {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
  padding-top: 2px;
}

.rv3-dot {
  width: var(--skill-dot-size);
  height: var(--skill-dot-size);
  border-radius: 50%;
  background: var(--dot-inactive);
}

.rv3-dot--filled {
  background: var(--dark);
}

.rv3-main {
  flex: 1;
  min-width: 0;
  padding: var(--spacing-xxl) var(--spacing-xxl) var(--spacing-xl);
}

.rv3-watermark {
  font-size: var(--font-size-xxs);
  color: var(--label-color);
  letter-spacing: 2px;
  font-style: italic;
  text-align: right;
  margin-bottom: var(--spacing-sm);
}

.rv3-name-block {
  margin-bottom: var(--spacing-xxl);
}

.rv3-name {
  font-size: var(--font-size-name);
  color: var(--dark);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.rv3-name + .rv3-name {
  margin-top: 2px;
}

.rv3-jobtitle {
  font-size: var(--font-size-sm);
  color: var(--label-color);
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-top: var(--spacing-sm);
}

.rv3-section-title {
  font-size: var(--font-size-section);
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--dark);
  padding-bottom: var(--spacing-sm);
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border-color);
}

.rv3-section {
  margin-bottom: 16px;
}

.rv3-section--offset {
  margin-top: 16px;
}

.rv3-timeline-entry {
  display: grid;
  grid-template-columns: var(--timeline-date-width) var(--timeline-line-column) minmax(0, 1fr);
  gap: var(--spacing-xl);
  margin-bottom: var(--spacing-lg);
  align-items: stretch;
}

.rv3-timeline-date {
  min-width: 0;
  text-align: right;
  padding-top: 2px;
  font-size: var(--font-size-xs);
  color: var(--label-color);
}

.rv3-timeline-line {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 6px;
  min-width: 0;
}

.rv3-timeline-dot {
  width: var(--timeline-dot-size);
  height: var(--timeline-dot-size);
  border-radius: 50%;
  border: var(--timeline-dot-border) solid var(--dark);
  background: transparent;
  flex-shrink: 0;
}

.rv3-timeline-stem {
  width: var(--timeline-line-width);
  flex: 1;
  background: var(--border-color);
  margin-top: 4px;
  min-height: 18px;
}

.rv3-timeline-content {
  min-width: 0;
  padding-bottom: var(--spacing-sm);
}

.rv3-timeline-title {
  font-size: var(--font-size-base);
  color: var(--dark);
  font-weight: 600;
}

.rv3-timeline-subtitle {
  font-size: var(--font-size-sm);
  color: var(--label-color);
  font-style: italic;
}

.rv3-timeline-summary {
  margin-top: var(--spacing-xs);
  font-size: var(--font-size-body);
  color: var(--text-body);
  line-height: 1.65;
}

.rv3-timeline-bullets {
  list-style: none;
  margin-top: var(--spacing-sm);
}

.rv3-timeline-bullets li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: var(--spacing-xs);
  font-size: var(--font-size-body);
  color: var(--text-body);
  line-height: 1.6;
  min-width: 0;
}

.rv3-bullet-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--bullet-color);
  flex-shrink: 0;
  margin-top: 6px;
}

.rv3-bullet-text {
  min-width: 0;
  flex: 1;
}

.rv3-sidebar--page2 {
  display: flex;
  flex-direction: column;
}

.rv3-simple-list,
.rv3-expertise-list,
.rv3-detail-list {
  list-style: none;
  font-size: var(--font-size-sm);
}

.rv3-simple-list {
  color: var(--dark);
}

.rv3-simple-list li {
  margin-bottom: var(--spacing-xs);
}

.rv3-expertise-list {
  color: var(--dark);
}

.rv3-expertise-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: var(--spacing-sm);
  min-width: 0;
}

.rv3-expertise-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--dark);
  flex-shrink: 0;
  margin-top: 6px;
}

.rv3-expertise-text {
  min-width: 0;
  flex: 1;
}

.rv3-detail-list li {
  margin-bottom: var(--spacing-md);
}

.rv3-detail-name {
  font-size: var(--font-size-base);
  color: var(--dark);
  font-weight: 600;
}

.rv3-detail-org {
  color: var(--label-color);
}

.rv3-detail-date {
  color: var(--label-color);
  font-size: var(--font-size-xs);
}

.rv3-detail-info {
  color: var(--text-body);
  margin-top: 2px;
  line-height: 1.55;
}

@page {
  size: A4 portrait;
  margin: 0;
}

@media print {
  html,
  body {
    background: #fff !important;
    margin: 0;
    padding: 0;
  }

  .resume-premium-v3,
  .rv3-page,
  .rv3-sidebar,
  .rv3-sidebar--page2,
  .rv3-photo-wrap,
  .rv3-photo-wrap--placeholder {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .rv3-page {
    margin: 0;
    box-shadow: none;
    page-break-after: always;
    min-height: var(--page-height);
  }

  .rv3-page:last-child {
    page-break-after: auto;
  }
}

/* =============================================
   BewerbungsFix: PDF-Bundle
   ============================================= */
.cv-v1-bundle .rv3-document-shell {
  padding: 0 !important;
  margin: 0 auto !important;
}

.cv-v1-bundle .resume-premium-v3 {
  background: #ffffff;
}

.cv-v1-bundle .rv3-page {
  margin: 0 auto !important;
  box-shadow: none !important;
  page-break-after: always;
  break-after: page;
  min-height: var(--page-height);
}

.cv-v1-bundle .rv3-page:last-child {
  page-break-after: auto;
  break-after: auto;
}

@media print {
  .cv-v1-bundle .rv3-page + .rv3-page {
    break-before: page;
    page-break-before: always;
  }
}

/* =============================================
   BewerbungsFix: Live-Vorschau (nur Seite 1)
   — Rahmen aspect-ratio steuert index.html (.live-sheet.cv-v3-premium-active)
   ============================================= */

.cv-premium-v3-mount {
  position: relative;
  z-index: 4;
  flex: 1;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  padding: 4px;
  box-sizing: border-box;
  container-type: size;
  container-name: cv-premium-v3-preview;
}

.cv-premium-v3-mount .resume-premium-v3 {
  background: #ffffff;
}

.cv-premium-v3-mount .rv3-page + .rv3-page {
  display: none !important;
}

.cv-premium-v3-mount .rv3-page {
  margin: 0 !important;
  box-shadow: none !important;
}

.cv-premium-v3-mount .rv3-document-shell {
  padding: 0;
  margin: 0;
  width: max-content;
  transform-origin: center center;
  /* Nach Skalierung oft optisch zu weit oben → spürbar nach unten (Anteil der Mount-Höhe) */
  transform: scale(
      min(
        calc(100cqw / 210mm),
        calc(100cqh / 297mm)
      )
    )
    translateY(18cqh);
}

@supports not (container-type: size) {
  .cv-premium-v3-mount .rv3-document-shell {
    transform: scale(0.4);
  }
}

.live-sheet.cv-v3-premium-active .live-sheet-lock {
  display: none;
}
