/* Guided resume builder */

.resume-start {
  background: var(--paper);
  border: 1px solid var(--line);
  padding: clamp(26px, 4vw, 52px);
}

.resume-start-heading {
  align-items: end;
  display: flex;
  gap: 40px;
  justify-content: space-between;
  margin-bottom: 42px;
}

.resume-start-heading > div {
  max-width: 680px;
}

.resume-start-heading h2 {
  font-size: clamp(38px, 4.5vw, 62px);
  letter-spacing: -0.065em;
  line-height: 0.96;
  margin: 0;
}

.resume-start-heading > div > p:last-child {
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.6;
  margin: 18px 0 0;
  max-width: 580px;
}

.resume-import-button {
  background: var(--ink);
  color: white;
  cursor: pointer;
  flex: 0 0 auto;
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  font-weight: 700;
  min-width: 190px;
  padding: 16px 18px;
  text-transform: uppercase;
}

.resume-import-button span {
  color: #9fa4ae;
  display: block;
  font-size: 8px;
  margin-bottom: 5px;
}

.resume-import-button input {
  display: none;
}

.resume-template-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
}

.resume-template-choice {
  align-items: stretch;
  background: #f5f4ef;
  border: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  min-height: 520px;
  padding: 18px;
  text-align: left;
  transition:
    box-shadow 180ms ease,
    transform 180ms ease;
}

.resume-template-choice:hover,
.resume-template-choice:focus-visible {
  box-shadow: 7px 7px 0 var(--ink);
  outline: none;
  transform: translate(-3px, -3px);
}

.template-choice-number {
  color: var(--blue);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  font-weight: 700;
}

.template-choice-copy {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 20px;
}

.template-choice-copy strong {
  font-size: 22px;
  letter-spacing: -0.04em;
}

.template-choice-copy small {
  color: var(--ink-soft);
  font-size: 10px;
  line-height: 1.55;
}

.template-choice-action {
  border-top: 1px solid var(--line);
  font-size: 10px;
  font-weight: 700;
  margin-top: auto;
  padding-top: 15px;
}

.template-miniature {
  background: white;
  border: 1px solid #d8d8d5;
  box-shadow: 0 8px 26px rgba(17, 19, 24, 0.08);
  display: flex;
  flex-direction: column;
  height: 280px;
  margin: 15px auto 0;
  overflow: hidden;
  padding: 36px 28px;
  position: relative;
  width: 198px;
}

.template-miniature span,
.template-miniature i,
.template-miniature b {
  background: #b8bbc2;
  display: block;
  flex: 0 0 auto;
  height: 4px;
  margin-bottom: 7px;
}

.template-miniature .template-mini-name {
  background: #1a1c22;
  height: 10px;
  width: 68%;
}

.template-miniature .template-mini-role {
  background: var(--blue);
  height: 5px;
  margin-bottom: 25px;
  width: 45%;
}

.template-miniature i {
  background: #1a1c22;
  height: 6px;
  margin-bottom: 10px;
  margin-top: 10px;
  width: 35%;
}

.template-miniature b:nth-last-child(2) {
  width: 84%;
}

.template-miniature b:last-child {
  width: 68%;
}

.template-miniature-modern {
  border-top: 36px solid var(--blue);
  padding-top: 22px;
}

.template-miniature-modern::before {
  background: #e4e8ff;
  bottom: 0;
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 48px;
}

.template-miniature-minimal {
  border-top: 5px solid var(--blue);
  padding-top: 50px;
}

.template-miniature-minimal .template-mini-name {
  height: 7px;
  width: 50%;
}

.resume-builder {
  background: var(--paper);
  border: 1px solid var(--line);
}

.resume-builder-toolbar {
  align-items: center;
  background: white;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  padding: 15px 18px;
  position: sticky;
  top: 0;
  z-index: 20;
}

.resume-document-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.resume-document-title span {
  color: #777c85;
  font-family: var(--font-geist-mono), monospace;
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
}

.resume-document-title input {
  background: transparent;
  border: 0;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  max-width: 320px;
  outline: none;
  padding: 0;
}

.resume-mode-switch {
  background: #eeece5;
  display: flex;
  padding: 3px;
}

.resume-mode-switch button {
  background: transparent;
  border: 0;
  color: #626771;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  min-width: 76px;
  padding: 9px 12px;
}

.resume-mode-switch button.active {
  background: white;
  box-shadow: 0 1px 4px rgba(17, 19, 24, 0.12);
  color: var(--ink);
}

.resume-document-actions,
.resume-downloads {
  align-items: center;
  display: flex;
  gap: 7px;
}

.resume-downloads a {
  border: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--font-geist-mono), monospace;
  font-size: 8px;
  font-weight: 700;
  padding: 11px 10px;
}

.resume-save {
  background: var(--ink);
  border: 1px solid var(--ink);
  color: white;
  cursor: pointer;
  font-size: 9px;
  font-weight: 750;
  min-width: 116px;
  padding: 12px 15px;
  text-transform: uppercase;
}

.resume-builder-grid {
  display: grid;
  grid-template-columns: minmax(420px, 0.88fr) minmax(500px, 1.12fr);
  min-height: 900px;
}

.resume-builder-controls {
  border-right: 1px solid var(--line);
  min-width: 0;
  padding: 22px;
}

.resume-score-card {
  align-items: center;
  background: var(--ink);
  color: white;
  display: flex;
  gap: 15px;
  min-height: 96px;
  padding: 16px 18px;
}

.resume-score-ring {
  align-items: center;
  background:
    radial-gradient(circle, var(--ink) 56%, transparent 58%),
    conic-gradient(var(--lime) var(--resume-score), #4e5158 0);
  border-radius: 50%;
  display: flex;
  flex: 0 0 auto;
  height: 61px;
  justify-content: center;
  width: 61px;
}

.resume-score-ring strong {
  color: var(--lime);
  font-size: 17px;
}

.resume-score-card > div:last-child {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.resume-score-card span {
  color: #9da1aa;
  font-family: var(--font-geist-mono), monospace;
  font-size: 7px;
  text-transform: uppercase;
}

.resume-score-card > div > strong {
  font-size: 14px;
}

.resume-score-card small {
  color: #b8bbc2;
  font-size: 8px;
}

.resume-section-nav {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
  margin: 16px 0;
}

.resume-section-nav button {
  align-items: center;
  background: white;
  border: 1px solid var(--line);
  color: #686d76;
  cursor: pointer;
  display: flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 7px;
  font-weight: 700;
  gap: 6px;
  justify-content: center;
  min-width: 0;
  padding: 8px 9px;
  text-transform: uppercase;
}

.resume-section-nav button.active {
  border-color: var(--blue);
  color: var(--blue);
}

.resume-section-nav button > span {
  align-items: center;
  background: #eeece5;
  border-radius: 50%;
  display: flex;
  height: 18px;
  justify-content: center;
  width: 18px;
}

.resume-section-nav button > span.complete {
  background: var(--lime);
  color: var(--ink);
}

.resume-editor-card,
.resume-design-panel {
  background: white;
  border: 1px solid var(--line);
  min-height: 610px;
  padding: 25px;
}

.resume-editor-heading {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 13px;
  grid-template-columns: 28px 1fr;
  margin-bottom: 24px;
  padding-bottom: 20px;
}

.resume-editor-heading > span {
  color: var(--blue);
  font-family: var(--font-geist-mono), monospace;
  font-size: 8px;
  font-weight: 700;
  padding-top: 5px;
}

.resume-editor-heading h2 {
  font-size: 26px;
  letter-spacing: -0.05em;
  line-height: 1;
  margin: 0;
}

.resume-editor-heading p {
  color: var(--ink-soft);
  font-size: 10px;
  line-height: 1.55;
  margin: 7px 0 0;
}

.resume-fields {
  display: grid;
  gap: 15px;
}

.resume-fields.two-columns {
  grid-template-columns: 1fr 1fr;
}

.resume-fields label,
.resume-large-field,
.resume-tag-editor label {
  color: #373b43;
  display: flex;
  flex-direction: column;
  font-size: 9px;
  font-weight: 700;
  gap: 7px;
}

.resume-fields input,
.resume-fields textarea,
.resume-large-field textarea,
.resume-tag-input input {
  background: white;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
  font-family: inherit;
  font-size: 11px;
  min-height: 43px;
  outline: none;
  padding: 10px 11px;
  width: 100%;
}

.resume-fields input:focus,
.resume-fields textarea:focus,
.resume-large-field textarea:focus,
.resume-tag-input input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(36, 71, 255, 0.08);
}

.resume-fields input:disabled {
  background: #efeee9;
  color: #8a8f97;
}

.resume-fields textarea {
  line-height: 1.55;
  min-height: 105px;
  resize: vertical;
}

.resume-fields.compact {
  gap: 12px;
}

.resume-fields .resume-checkbox-field {
  align-items: center;
  flex-direction: row;
  font-size: 9px;
  font-weight: 600;
}

.resume-checkbox-field input {
  accent-color: var(--blue);
  min-height: 0;
  width: auto;
}

.resume-text-button {
  background: transparent;
  border: 0;
  color: var(--blue);
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  margin-top: 17px;
  padding: 0;
}

.resume-large-field textarea {
  line-height: 1.65;
  min-height: 210px;
  resize: vertical;
}

.resume-large-field textarea.imported {
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  min-height: 340px;
}

.resume-large-field > span {
  color: #898e97;
  font-family: var(--font-geist-mono), monospace;
  font-size: 7px;
  text-align: right;
}

.resume-writing-tip,
.resume-design-note {
  background: #edf0ff;
  border-left: 3px solid var(--blue);
  margin-top: 20px;
  padding: 15px 16px;
}

.resume-writing-tip strong,
.resume-design-note strong {
  font-size: 10px;
}

.resume-writing-tip p,
.resume-design-note p {
  color: #656a75;
  font-size: 9px;
  line-height: 1.55;
  margin: 5px 0 0;
}

.resume-record-list {
  display: grid;
  gap: 14px;
}

.resume-record {
  background: #f7f6f2;
  border: 1px solid var(--line);
  padding: 15px;
}

.resume-record > header {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
  padding-bottom: 11px;
}

.resume-record > header strong {
  font-size: 10px;
}

.resume-record > header button {
  background: transparent;
  border: 0;
  color: #8f3420;
  cursor: pointer;
  font-size: 8px;
}

.resume-add-record {
  align-items: center;
  background: white;
  border: 1px dashed #aeb2ba;
  color: var(--blue);
  cursor: pointer;
  display: flex;
  font-size: 9px;
  font-weight: 700;
  gap: 9px;
  justify-content: center;
  margin-top: 15px;
  padding: 14px;
  width: 100%;
}

.resume-add-record span {
  font-size: 16px;
  line-height: 1;
}

.resume-tag-editor {
  display: grid;
  gap: 12px;
}

.resume-tag-input {
  display: flex;
}

.resume-tag-input input {
  border-right: 0;
}

.resume-tag-input button {
  background: var(--ink);
  border: 1px solid var(--ink);
  color: white;
  cursor: pointer;
  font-size: 8px;
  font-weight: 700;
  min-width: 60px;
}

.resume-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 20px;
  padding-bottom: 15px;
}

.resume-tags button {
  background: #edf0ff;
  border: 1px solid #cbd3ff;
  color: #213fcf;
  cursor: pointer;
  font-size: 8px;
  padding: 7px 9px;
}

.resume-tags button span {
  margin-left: 5px;
}

.resume-section-footer {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-top: 27px;
  padding-top: 18px;
}

.resume-section-footer > span {
  color: #858a93;
  font-size: 8px;
}

.resume-section-footer button {
  background: var(--blue);
  border: 0;
  color: white;
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  padding: 11px 14px;
}

.resume-design-panel {
  min-height: 735px;
}

.resume-design-group {
  border-bottom: 1px solid var(--line);
  padding: 0 0 23px;
}

.resume-design-group + .resume-design-group {
  padding-top: 22px;
}

.resume-design-group > strong {
  display: block;
  font-size: 9px;
  margin-bottom: 13px;
  text-transform: uppercase;
}

.resume-design-templates {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(3, 1fr);
}

.resume-design-templates > button {
  background: #f5f4ef;
  border: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  padding: 8px;
}

.resume-design-templates > button.active {
  border: 2px solid var(--blue);
  padding: 7px;
}

.resume-design-templates .template-miniature {
  height: 128px;
  margin: 0 auto 8px;
  padding: 17px 13px;
  width: 90px;
}

.resume-design-templates .template-miniature-modern {
  border-top-width: 18px;
  padding-top: 10px;
}

.resume-design-templates .template-miniature-minimal {
  border-top-width: 3px;
  padding-top: 25px;
}

.resume-design-templates .template-miniature span,
.resume-design-templates .template-miniature i,
.resume-design-templates .template-miniature b {
  height: 2px;
  margin-bottom: 3px;
}

.resume-design-templates .template-miniature .template-mini-name {
  height: 5px;
}

.resume-design-templates > button > span {
  font-size: 8px;
  font-weight: 700;
}

.resume-colours {
  display: flex;
  gap: 10px;
}

.resume-colours button {
  border: 3px solid white;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--line);
  cursor: pointer;
  height: 31px;
  width: 31px;
}

.resume-colours button.active {
  box-shadow: 0 0 0 2px var(--ink);
}

.resume-font-choices {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, 1fr);
}

.resume-font-choices button {
  align-items: center;
  background: white;
  border: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font-size: 8px;
  gap: 4px;
  padding: 13px 8px;
}

.resume-font-choices button.active {
  border-color: var(--blue);
  color: var(--blue);
}

.resume-font-choices button > span {
  font-size: 21px;
}

.resume-preview-panel {
  background: #dad9d4;
  min-width: 0;
  position: relative;
}

.resume-preview-topline,
.resume-preview-footer {
  align-items: center;
  background: #d1d0cb;
  color: #626771;
  display: flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 8px;
  justify-content: space-between;
  min-height: 43px;
  padding: 0 18px;
  text-transform: uppercase;
}

.resume-preview-canvas {
  align-items: flex-start;
  display: flex;
  justify-content: center;
  min-height: 800px;
  overflow: auto;
  padding: 35px 28px 50px;
}

.resume-preview-footer {
  bottom: 0;
  position: absolute;
  width: 100%;
}

.resume-preview-footer .form-message {
  font-family: inherit;
  font-size: 7px;
  margin: 0;
  text-transform: none;
}

.resume-page {
  --resume-accent: #2447ff;
  aspect-ratio: 8.5 / 11;
  background: white;
  box-shadow: 0 12px 35px rgba(17, 19, 24, 0.18);
  color: #22242a;
  flex: 0 0 auto;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 8px;
  line-height: 1.52;
  min-height: 720px;
  overflow: hidden;
  padding: 58px 55px;
  width: min(100%, 610px);
}

.resume-page.font-serif,
.font-serif {
  font-family: Georgia, "Times New Roman", serif;
}

.resume-page.font-humanist,
.font-humanist {
  font-family: "Trebuchet MS", Arial, sans-serif;
}

.resume-preview-header {
  border-bottom: 2px solid var(--resume-accent);
  margin-bottom: 28px;
  padding-bottom: 19px;
  text-align: center;
}

.resume-preview-header h2 {
  color: #17191e;
  font-size: 28px;
  letter-spacing: -0.035em;
  line-height: 1;
  margin: 0;
  text-transform: uppercase;
}

.resume-preview-header > p {
  color: var(--resume-accent);
  font-size: 10px;
  font-weight: 700;
  margin: 8px 0 9px;
}

.resume-preview-header small {
  color: #646872;
  display: block;
  font-size: 6.7px;
  line-height: 1.5;
}

.resume-preview-body {
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.resume-preview-main {
  min-width: 0;
}

.resume-preview-main section + section,
.resume-preview-aside section + section {
  margin-top: 25px;
}

.resume-page h3 {
  border-bottom: 1px solid #c9cbd0;
  color: var(--resume-accent);
  font-size: 9px;
  letter-spacing: 0.12em;
  margin: 0 0 11px;
  padding-bottom: 5px;
  text-transform: uppercase;
}

.resume-page p {
  margin: 0;
  white-space: pre-wrap;
}

.resume-preview-entry + .resume-preview-entry {
  margin-top: 17px;
}

.resume-preview-entry h4 {
  font-size: 8.7px;
  line-height: 1.3;
  margin: 0;
}

.resume-preview-entry h4 .resume-preview-entry-primary,
.resume-preview-entry h4 .resume-preview-entry-secondary,
.resume-preview-entry .resume-preview-entry-meta > span {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}

.resume-preview-entry h4 .resume-preview-entry-primary,
.resume-preview-entry h4 .resume-preview-entry-secondary,
.resume-preview-entry .resume-preview-entry-meta > span {
  display: block;
}

.resume-preview-entry span {
  color: #777b83;
  display: block;
  font-size: 6.7px;
  margin: 2px 0 6px;
}

.resume-preview-entry ul {
  margin: 5px 0 0;
  padding-left: 13px;
}

.resume-preview-entry li {
  margin-bottom: 2px;
}

.resume-preview-aside {
  width: 115px;
}

.resume-preview-aside ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.resume-preview-aside li {
  border-bottom: 1px solid #e0e1e4;
  padding: 4px 0;
}

.resume-preview-imported.standalone p {
  min-height: 8px;
  white-space: pre-wrap;
}

.resume-preview-imported > p {
  max-height: 280px;
  overflow: hidden;
}

.resume-preview-empty {
  align-items: center;
  color: #9498a0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 360px;
  text-align: center;
}

.resume-preview-empty span {
  color: #555a63;
  font-size: 12px;
  font-weight: 700;
}

.resume-preview-empty p {
  margin-top: 6px;
  max-width: 210px;
}

.resume-page.template-modern {
  padding: 0 50px 50px;
}

.template-modern .resume-preview-header {
  background: var(--resume-accent);
  border: 0;
  color: white;
  margin: 0 -50px 30px;
  padding: 43px 50px 26px;
  text-align: left;
}

.template-modern .resume-preview-header h2,
.template-modern .resume-preview-header > p,
.template-modern .resume-preview-header small {
  color: white;
}

.template-modern .resume-preview-header small {
  opacity: 0.76;
}

.template-modern h3 {
  border-bottom-color: var(--resume-accent);
}

.resume-page.template-minimal {
  border-top: 8px solid var(--resume-accent);
  padding-top: 68px;
}

.template-minimal .resume-preview-header {
  border: 0;
  margin-bottom: 38px;
  padding: 0;
  text-align: left;
}

.template-minimal .resume-preview-header h2 {
  font-size: 24px;
  text-transform: none;
}

.template-minimal .resume-preview-header > p {
  margin-top: 5px;
}

.template-minimal h3 {
  border: 0;
  color: #202228;
  font-size: 8px;
  padding: 0;
}

@media (max-width: 1220px) {
  .resume-template-choice {
    min-height: 480px;
  }

  .template-miniature {
    height: 240px;
    width: 170px;
  }

  .resume-builder-grid {
    grid-template-columns: 1fr;
  }

  .resume-builder-controls {
    border-bottom: 1px solid var(--line);
    border-right: 0;
  }

  .resume-preview-canvas {
    min-height: 850px;
  }

  .resume-preview-footer {
    position: static;
  }
}

@media (max-width: 820px) {
  .resume-start-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-import-button {
    max-width: 240px;
  }

  .resume-template-grid {
    grid-template-columns: 1fr;
  }

  .resume-template-choice {
    min-height: 0;
  }

  .resume-builder-toolbar {
    align-items: stretch;
    grid-template-columns: 1fr auto;
  }

  .resume-mode-switch {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: stretch;
  }

  .resume-mode-switch button {
    flex: 1;
  }
}

@media (max-width: 600px) {
  .resume-start {
    padding: 22px 17px;
  }

  .resume-builder-toolbar {
    position: static;
  }

  .resume-document-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .resume-downloads {
    justify-content: flex-end;
  }

  .resume-builder-controls {
    padding: 12px;
  }

  .resume-editor-card,
  .resume-design-panel {
    min-height: 0;
    padding: 19px 16px;
  }

  .resume-fields.two-columns {
    grid-template-columns: 1fr;
  }

  .resume-fields .span-two {
    grid-column: 1;
  }

  .resume-design-templates,
  .resume-font-choices {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .resume-preview-canvas {
    justify-content: flex-start;
    min-height: 660px;
    padding: 18px 12px 30px;
  }

  .resume-page {
    min-height: 610px;
    padding: 38px 34px;
    width: 470px;
  }

  .resume-page.template-modern {
    padding: 0 34px 34px;
  }

  .template-modern .resume-preview-header {
    margin-left: -34px;
    margin-right: -34px;
    padding-left: 34px;
    padding-right: 34px;
  }
}

/* Conversational CV intake, using CVExpert's existing brand tokens. */
.cv-ux, .cv-studio { background: var(--cream); color: var(--ink); min-height: 100svh; font-family: var(--font-geist-sans), sans-serif; }
.cv-ux *, .cv-studio * { box-sizing: border-box; }
.cv-ux button, .cv-studio button { cursor: pointer; font-family: inherit; }
.cv-ux button:disabled, .cv-studio button:disabled { cursor: not-allowed; opacity: .42; }
.cv-ux button:focus-visible, .cv-ux a:focus-visible, .cv-studio button:focus-visible, .cv-studio a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.cv-ux-primary, .cv-ux-secondary { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 48px; padding: 11px 24px; border: 1px solid transparent; border-radius: 6px; background: var(--blue); color: white; font-size: 16px; line-height: 1.4; font-weight: 600; box-shadow: none; white-space: nowrap; }
.cv-ux-primary:hover { background: var(--blue-dark); }
.cv-ux-secondary { background: var(--lime); color: var(--ink); }
.cv-ux-secondary:hover { background: #ccef58; }
.cv-ux-header { height: 104px; padding: 24px 32px; display: grid; grid-template-columns: 1fr minmax(230px, 560px) 1fr; align-items: center; gap: 24px; }
.cv-ux-header-start { justify-self: start; }
.cv-ux-back { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: none; }
.cv-ux-login { justify-self: end; color: var(--blue); border: 1px solid var(--blue); border-radius: 6px; padding: 8px 22px; font-size: 15px; font-weight: 600; white-space: nowrap; }
.cv-ux-progress { display: flex; align-items: center; width: 100%; padding: 0; margin: 0; list-style: none; }
.cv-ux-progress li { position: relative; flex: 1; }
.cv-ux-progress li:last-child { flex: 0 0 32px; }
.cv-ux-progress li > span { display: grid; place-items: center; width: 32px; height: 32px; background: #d7d9e6; color: #53596b; border-radius: 50%; font-size: 14px; font-weight: 500; }
.cv-ux-progress li:after { content: ''; position: absolute; height: 3px; left: 40px; right: 8px; top: 15px; background: #e1e1df; }
.cv-ux-progress li:last-child:after { display: none; }
.cv-ux-progress li.current > span { background: var(--blue); color: white; }
.cv-ux-progress li.complete > span { background: var(--lime); color: var(--ink); }
.cv-ux-progress li.complete:after { background: var(--blue); }
.cv-ux-main { padding: 16px 32px 70px; text-align: center; }
.cv-guide-mark { position: relative; width: 230px; height: 230px; margin: 0 auto; display: grid; place-items: center; isolation: isolate; }
.cv-guide-shape { position: absolute; display: block; z-index: -1; }
.cv-guide-shape.one { width: 180px; height: 138px; background: #dce2ff; transform: rotate(22deg); border-radius: 30% 65% 40% 60%; left: 2px; top: 58px; }
.cv-guide-shape.two { width: 125px; height: 210px; background: #ffd7c9; transform: rotate(27deg); border-radius: 70% 35% 75% 40%; right: 24px; top: 0; }
.cv-guide-shape.three { width: 98px; height: 154px; background: #e1f6a9; transform: rotate(-28deg); border-radius: 48% 70% 36% 40%; right: 32px; bottom: 3px; }
.cv-guide-face { position: relative; display: grid; place-items: center; width: 140px; height: 140px; border-radius: 50%; color: white; background: var(--blue); font-size: 62px; letter-spacing: -.11em; padding-right: 8px; font-weight: 650; box-shadow: 0 5px 18px #2447ff0c; }
.cv-guide-face > span { position: absolute; right: 19px; top: 24px; color: var(--lime); font-size: 23px; letter-spacing: 0; }
.cv-guide-mark.small { width: 120px; height: 120px; }
.cv-guide-mark.small .cv-guide-face { width: 82px; height: 82px; font-size: 36px; }
.cv-guide-mark.small .cv-guide-face > span { font-size: 14px; right: 10px; top: 14px; }
.cv-guide-mark.small .cv-guide-shape.one { width: 100px; height: 74px; top: 25px; }
.cv-guide-mark.small .cv-guide-shape.two { width: 65px; height: 112px; right: 12px; }
.cv-guide-mark.small .cv-guide-shape.three { width: 51px; height: 81px; right: 14px; }
.cv-ux-main > h1 { white-space: pre-line; max-width: 1030px; margin: 62px auto 34px; font-size: 34px; line-height: 1.25; letter-spacing: -.025em; font-weight: 550; outline: none; }
.cv-ux-step-role .cv-ux-main > h1 { max-width: 690px; }
.cv-ux-choice { display: flex; justify-content: center; gap: 16px; }
.cv-ux-choice > button { width: 144px; min-height: 64px; font-size: 20px; }
@media (min-width: 801px) {
  .cv-ux-header { height: 128px; grid-template-columns: 1fr minmax(230px, 680px) 1fr; }
  .cv-ux-login { min-height: 48px; padding: 11px 26px; font-size: 18px; }
  .cv-ux-progress li:last-child { flex-basis: 40px; }
  .cv-ux-progress li > span { width: 40px; height: 40px; font-size: 17px; }
  .cv-ux-progress li:after { left: 50px; right: 10px; top: 19px; }
  .cv-ux-main > .cv-guide-mark { transform: scale(1.25); margin: 29px auto; }
  .cv-ux-main > h1 { max-width: 1240px; font-size: 40px; margin-top: 74px; margin-bottom: 40px; }
  .cv-ux-choice { gap: 20px; }
  .cv-ux-choice > button { width: 160px; min-height: 68px; font-size: 22px; }
}
.cv-ux-input-form { width: min(680px, 100%); margin: 0 auto; }
.cv-ux-input-row { display: flex; gap: 16px; align-items: stretch; }
.cv-ux-input-row > input, .cv-ux-linkedin-input { flex: 1; min-width: 0; min-height: 50px; background: white; border: 1px solid #a8acb2; border-radius: 4px; text-align: left; }
.cv-ux-input-row input { padding: 12px; color: var(--ink); font-size: 16px; font-family: inherit; }
.cv-ux input:focus-visible, .cv-ux textarea:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.cv-ux-skip { display: block; margin: 14px auto 0; min-height: 44px; padding: 10px 16px; font-size: 14px; color: var(--ink-soft); background: none; border: 0; }
.cv-ux-skip:hover { color: var(--blue); text-decoration: underline; }
.cv-ux-upload-panel { max-width: 1280px; margin: 0 auto; background: var(--paper); padding: 30px; border: 12px solid #eeece5; border-radius: 28px; box-shadow: 0 3px 10px #11131812; }
.cv-ux-drop { padding: 20px 30px; border: 1px dashed #858a93; border-radius: 7px; }
.cv-ux-drop.dragging { outline: 3px solid var(--blue); background: #edf0ff; }
.cv-ux-drop p { margin: 0 0 20px; font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.cv-ux-drop p span { font-size: 16px; }
.cv-ux-drop .cv-ux-primary { min-height: 52px; padding: 12px 24px; font-size: 18px; }
.cv-ux-privacy { display: flex; justify-content: center; align-items: center; gap: 8px; color: var(--ink-soft); font-size: 16px; margin: 36px 0 0; }
.cv-ux-privacy svg { flex-shrink: 0; }
.cv-ux-error { color: #9a2c27; background: #fff0ed; border: 1px solid #e8b4ac; border-radius: 4px; font-size: 14px; line-height: 1.5; padding: 12px 16px; max-width: 680px; margin: 20px auto; text-align: left; }
.cv-ux-storage-error { position: fixed; z-index: 100; bottom: 0; left: 0; right: 0; background: #fff0ed; color: #9a2c27; padding: 16px; margin: 0; }
.cv-ux-step-template .cv-ux-main > h1 { font-size: 40px; margin-bottom: 32px; }
.cv-ux-template-description { margin: 0 auto 48px; max-width: 760px; font-size: 18px; line-height: 1.6; color: var(--ink-soft); }
.cv-ux-templates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 1120px; margin: 0 auto; }
.cv-ux-template { position: relative; display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 20px 20px 38px; border: 2px solid transparent; border-radius: 4px; background: #e6e5df; color: var(--ink); }
.cv-ux-template:hover, .cv-ux-template:focus-visible { background: #e8eecf; border-color: var(--blue); }
.cv-ux-template > strong { font-size: 24px; margin: 22px 0 0; font-weight: 500; }
.cv-ux-template-cta { position: absolute; bottom: 122px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; min-height: 56px; width: max-content; max-width: calc(100% - 32px); padding: 14px 22px; background: var(--lime); color: var(--ink); border-radius: 5px; font-size: 20px; line-height: 1.3; font-weight: 600; opacity: 0; transition: opacity .12s; }
.cv-ux-template:hover .cv-ux-template-cta, .cv-ux-template:focus-visible .cv-ux-template-cta { opacity: 1; }
@media (max-width: 1100px) {
  .cv-ux-templates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.cv-ux-mini-preview { text-align: left; display: block; width: 100%; aspect-ratio: 1 / 1.414; overflow: hidden; pointer-events: none; background: white; box-shadow: 0 1px 3px #0001; container-type: inline-size; }
.cv-ux-signature-thumbnail { display: block; width: 100%; height: 100%; object-fit: contain; object-position: top center; background: #fff; }
.cv-ux-reference-thumbnail { display: block; width: 100%; height: 100%; object-fit: contain; }
.cv-ux-template-caption { font-size: 16px; line-height: 1.5; min-height: 24px; margin-top: 8px; }
.cv-ux-mini-preview .resume-page { width: 100%; min-height: 100%; padding: 8cqw; box-shadow: none; font-size: 2.2cqw; }
.cv-ux-mini-preview .resume-preview-header { margin-bottom: 6cqw; padding-bottom: 5cqw; }
.cv-ux-mini-preview .resume-page h2 { font-size: 6cqw; line-height: 1.2; }
.cv-ux-mini-preview .resume-page h3 { font-size: 3cqw; margin-bottom: 3cqw; }
.cv-ux-mini-preview .resume-page h4 { font-size: 2.6cqw; }
.cv-ux-mini-preview .resume-page p, .cv-ux-mini-preview .resume-page li { font-size: 2.35cqw; line-height: 1.45; }
.cv-ux-mini-preview .resume-page small, .cv-ux-mini-preview .resume-page span { font-size: 2cqw; }
.cv-ux-mini-preview .resume-preview-body { gap: 5cqw; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.cv-ux-mini-preview .resume-preview-main section + section { margin-top: 5cqw; }
.cv-ux-mini-preview .resume-preview-item { margin-bottom: 4cqw; }
.cv-ux-mini-preview .resume-page.template-modern { padding-top: 0; }
.cv-ux-mini-preview .template-modern .resume-preview-header { margin: 0 -8cqw 6cqw; padding: 8cqw; }
.cv-ux-mini-preview .resume-preview-list { gap: 1.5cqw; }
.cv-ux-linkedin-input { display: flex; align-items: center; padding-left: 12px; gap: 8px; }
.cv-ux-linkedin-input > span { background: var(--ink-soft); color: white; border-radius: 2px; font-size: 12px; font-weight: 700; line-height: 16px; width: 16px; text-align: center; }
.cv-ux-linkedin-input input { width: 100%; min-width: 0; border: 0; background: transparent; padding-left: 0; }
.cv-ux-input-help { font-size: 12px; color: var(--ink-soft); margin: 12px 0 0; }
.cv-ux-import-alternatives { display: flex; align-items: center; justify-content: center; gap: 12px; font-size: 13px; color: var(--ink-soft); margin-top: 22px; }
.cv-ux-import-alternatives button { background: none; border: 0; padding: 8px 0; text-decoration: underline; text-underline-offset: 3px; font-size: inherit; color: inherit; min-height: 44px; }
.cv-ux-paste-label { display: block; font-size: 14px; font-weight: 600; margin: 20px 0; }
.cv-ux-paste-label textarea { display: block; width: 100%; padding: 14px; border: 1px solid #b7bac2; font-size: 16px; margin-top: 12px; resize: vertical; font-weight: 400; }
/* Document-first guest editor. */
.cv-studio-header { height: 56px; padding: 8px 16px; display: flex; gap: 14px; align-items: center; background: var(--paper); border-bottom: 1px solid var(--line); }
.cv-studio-header .brand { font-size: 18px; gap: 8px; }
.cv-studio-header .brand-mark { width: 30px; height: 30px; font-size: 14px; }
.cv-studio-back { display: grid; place-items: center; width: 32px; height: 36px; padding: 0; border: 0; background: none; }
.cv-studio-saved { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ink-soft); margin-left: 16px; }
.cv-studio-account { margin-left: auto; display: flex; align-items: center; gap: 22px; font-size: 14px; }
.cv-studio-account > a { color: var(--blue); }
.cv-studio-account .cv-ux-primary { min-height: 36px; padding: 6px 13px; font-size: 13px; }
.cv-studio-toolbar { position: sticky; top: 0; z-index: 15; display: flex; align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--line); min-height: 48px; box-shadow: 0 2px 3px #00000004; }
.cv-studio-toolbar button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; border: 0; background: transparent; font-size: 14px; color: var(--ink); padding: 8px 16px; white-space: nowrap; }
.cv-studio-toolbar button:hover, .cv-studio-toolbar button[aria-pressed=true] { background: #2447ff08; color: var(--blue); }
.cv-studio-guide-toggle { width: 310px; flex-shrink: 0; justify-content: flex-start !important; }
.cv-studio-tools { display: flex; align-items: stretch; gap: 5px; }
.cv-studio-history { display: flex; align-items: center; margin-left: auto; padding-right: 12px; }
.cv-studio-history button { padding: 8px 12px; }
.cv-studio-body { display: grid; grid-template-columns: 310px minmax(0, 1fr); align-items: start; }
.cv-studio.guide-hidden .cv-studio-body { grid-template-columns: minmax(0, 1fr); }
.cv-studio-guide { position: sticky; top: 48px; margin: 8px; min-height: calc(100svh - 120px); display: flex; flex-direction: column; justify-content: flex-end; padding: 24px 18px; background: var(--paper); border: 1px solid #11131806; box-shadow: 0 2px 8px #11131806; }
.cv-studio-guide h1 { font-size: 22px; line-height: 1.5; letter-spacing: -.025em; font-weight: 600; text-align: center; margin: 24px 0 12px; }
.cv-studio-guide-content > p { font-size: 13px; line-height: 1.6; color: var(--ink-soft); text-align: center; margin: 0 0 24px; }
.cv-guide-progress { display: flex; align-items: center; gap: 8px; margin-top: 16px; }
.cv-guide-progress > span { flex: 1; height: 4px; border-radius: 3px; overflow: hidden; background: #dededb; }
.cv-guide-progress i { display: block; height: 100%; background: var(--blue); min-width: 3%; }
.cv-guide-progress small { font-size: 10px; white-space: nowrap; color: var(--ink-soft); }
.cv-guide-prompts { display: grid; gap: 8px; }
.cv-guide-prompts button { display: flex; align-items: center; text-align: left; gap: 8px; min-height: 46px; background: transparent; border: 1px solid #d4d5d8; border-radius: 7px; padding: 10px; font-size: 12px; line-height: 1.4; }
.cv-guide-prompts button:first-child { border-color: var(--blue); }
.cv-guide-prompts svg { flex-shrink: 0; color: var(--blue); }
.cv-guide-tip { display: flex; align-items: start; gap: 10px; border: 1px solid #e3e3e1; border-radius: 8px; padding: 14px; margin-top: 16px; background: #fff; }
.cv-guide-tip svg { color: var(--blue); flex-shrink: 0; }
.cv-guide-tip p { font-size: 12px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
.cv-studio-canvas { min-width: 0; padding: 16px 32px 48px; overflow-wrap: anywhere; }
.cv-canvas-document-name { display: flex; justify-content: space-between; align-items: center; max-width: 940px; margin: 0 auto 10px; gap: 16px; }
.cv-canvas-document-name label { font-size: 0; min-width: 0; }
.cv-canvas-document-name input { border: 0; background: transparent; font-size: 14px; font-family: inherit; width: 220px; max-width: 100%; min-width: 0; }
.cv-canvas-document-name > span { color: var(--ink-soft); font-size: 12px; }
.cv-canvas-paper { --cv-accent: var(--blue); width: 100%; max-width: 940px; min-height: 1150px; margin: 0 auto; padding: 42px 46px 60px; background: white; border: 1px solid #dddcd5; box-shadow: 0 6px 8px #11131820; font-family: var(--font-geist-sans), sans-serif; }
.cv-canvas-field { display: block; width: 100%; min-width: 0; overflow: hidden; resize: none; border: 1px solid transparent; outline: 0; background: transparent; border-radius: 3px; font-family: inherit; font-size: 14px; line-height: 1.55; color: inherit; padding: 3px 5px; margin: 0 -5px; font-weight: 400; box-sizing: content-box; }
.cv-canvas-field::placeholder { color: #919499; opacity: 1; }
.cv-canvas-field:hover { border-color: #c6ccef; }
.cv-canvas-field:focus { border-color: var(--blue); background: #2447ff04; }
.cv-canvas-text { font-size: 14px; white-space: pre-wrap; line-height: 1.6; padding: 4px 0; overflow-wrap: anywhere; }
.cv-canvas-personal { padding-bottom: 32px; }
.cv-canvas-name { font-size: 34px; font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.cv-canvas-role { font-size: 18px; color: var(--cv-accent); font-weight: 500; }
.cv-canvas-role::placeholder, .cv-canvas-accent::placeholder { color: color-mix(in srgb, var(--cv-accent) 52%, white); }
.cv-canvas-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 12px; margin-top: 10px; }
.cv-canvas-contact > div { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.cv-canvas-contact svg { color: #9b9da2; flex-shrink: 0; }
.cv-canvas-contact .cv-canvas-field, .cv-canvas-contact .cv-canvas-text { font-size: 12px; }
.cv-canvas-columns { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 38px; }
.cv-canvas-columns > div { min-width: 0; }
.cv-canvas-section { position: relative; padding: 0 0 18px; margin-bottom: 18px; }
.cv-canvas-section h2 { font-size: 19px; letter-spacing: .015em; line-height: 1.3; font-weight: 550; text-transform: uppercase; border-bottom: 1px solid #b6b8ba; padding-bottom: 6px; margin: 0 0 12px; }
.cv-canvas-entry { position: relative; margin-bottom: 18px; }
.cv-canvas-entry-title { font-size: 17px; font-weight: 500; }
.cv-canvas-accent { color: var(--cv-accent); font-weight: 500; }
.cv-canvas-dates { display: flex; align-items: baseline; gap: 10px; color: #777d85; }
.cv-canvas-dates .cv-canvas-field, .cv-canvas-dates .cv-canvas-text { font-size: 12px; }
.cv-canvas-dates > span { font-size: 12px; }
.cv-canvas-remove { position: absolute; right: -25px; top: 0; opacity: 0; display: grid; place-items: center; border: 0; padding: 4px; min-height: 28px; background: white; color: #a9463a; }
.cv-canvas-entry:hover .cv-canvas-remove, .cv-canvas-entry:focus-within .cv-canvas-remove { opacity: 1; }
.cv-canvas-add { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; background: none; color: var(--blue); border: 0; border-top: 1px solid #2447ff55; min-height: 35px; font-size: 12px; opacity: .65; }
.cv-canvas-add:hover { opacity: 1; background: #2447ff05; }
.cv-canvas-footnote { color: var(--ink-soft); font-size: 12px; text-align: center; margin: 30px 0 0; }
.cv-paper-modern .cv-canvas-personal { background: var(--cv-accent); color: white; margin: -42px -46px 32px; padding: 36px 46px 28px; }
.cv-paper-modern .cv-canvas-personal textarea { color: white; }
.cv-paper-modern .cv-canvas-personal textarea::placeholder { color: #ffffffae; }
.cv-paper-modern .cv-canvas-personal svg { color: #ffffffae; }
.cv-paper-modern .cv-canvas-section h2 { color: var(--cv-accent); border-color: var(--cv-accent); }
.cv-paper-minimal { border-top: 7px solid var(--cv-accent); }
.cv-paper-minimal .cv-canvas-section h2 { border: 0; letter-spacing: .07em; font-size: 17px; }
.cv-paper-font-serif { font-family: Georgia, serif; }
.cv-paper-font-humanist { font-family: "Trebuchet MS", sans-serif; }
.cv-canvas-imported { white-space: pre-wrap; font-size: 15px; line-height: 1.7; min-height: 950px; }
.cv-editor-dialog { position: fixed; inset: 0; padding: 0; border: 1px solid #d7d7d2; border-radius: 10px; width: min(700px, calc(100vw - 32px)); max-height: calc(100svh - 48px); margin: auto; background: var(--paper); color: var(--ink); box-shadow: 0 16px 70px #0002; }
.cv-editor-dialog::backdrop { background: #11131865; }
.cv-editor-panel { padding: 24px; text-align: left; }
.cv-editor-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.cv-editor-panel h2 { font-size: 24px; line-height: 1.3; letter-spacing: -.025em; margin: 0; }
.cv-editor-panel > header > button { border: 0; background: none; padding: 10px; }
.cv-editor-presets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cv-editor-presets button { min-width: 0; background: #e8e6df; border: 2px solid transparent; padding: 10px; }
.cv-editor-presets button:hover { border-color: var(--blue); }
.cv-editor-presets strong { display: block; font-size: 13px; margin: 8px 0 0; font-weight: 500; }
.cv-editor-design { max-width: 400px; }
.cv-editor-design label { display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 16px; margin: 20px 0; }
.cv-editor-design select { padding: 10px; border: 1px solid #ccc; background: white; min-width: 170px; }
.cv-editor-swatches { display: flex; gap: 12px; }
.cv-editor-swatches button { width: 40px; height: 40px; border: 0; border-radius: 50%; display: grid; place-items: center; color: white; }
.cv-editor-order > p { font-size: 14px; line-height: 1.6; color: var(--ink-soft); }
.cv-editor-order > div { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.cv-editor-order span { margin-right: auto; }
.cv-editor-order button { width: 40px; height: 40px; border: 1px solid #ddd; background: white; display: grid; place-items: center; }
@media (max-width: 1100px) {
  .cv-studio-guide-toggle { width: 260px; }
  .cv-studio-body { grid-template-columns: 260px minmax(0, 1fr); }
  .cv-studio-toolbar button { padding: 8px 12px; font-size: 13px; }
  .cv-studio-canvas { padding: 16px 22px 40px; }
  .cv-canvas-paper { padding: 32px; }
  .cv-paper-modern .cv-canvas-personal { margin: -32px -32px 28px; padding: 30px 32px; }
  .cv-canvas-columns { gap: 25px; }
  .cv-canvas-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .cv-ux-header { grid-template-columns: 44px minmax(0, 1fr) 75px; padding: 20px; gap: 20px; height: 88px; }
  .cv-ux-login { padding: 8px 14px; }
  .cv-ux-templates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cv-studio-saved { display: none; }
  .cv-studio-toolbar { flex-wrap: wrap; }
  .cv-studio-guide-toggle { width: auto; }
  .cv-studio-tools { flex: 1; justify-content: center; }
  .cv-studio-history { padding-right: 0; }
  .cv-studio-body { display: flex; flex-direction: column; }
  .cv-studio-guide { position: static; margin: 12px auto 0; min-height: 0; width: calc(100% - 32px); padding: 14px 18px; }
  .cv-studio-guide .cv-guide-mark, .cv-studio-guide .cv-guide-progress, .cv-studio-guide h1, .cv-studio-guide-content > p, .cv-guide-tip { display: none; }
  .cv-guide-prompts { display: flex; gap: 8px; flex-wrap: wrap; }
  .cv-guide-prompts button { flex: 1; min-width: 150px; }
  .cv-studio-canvas { width: 100%; padding: 16px 24px 36px; }
}
@media (max-width: 540px) {
  .cv-ux-header { padding: 14px 16px; gap: 12px; grid-template-columns: 28px minmax(0, 1fr) 66px; height: 76px; }
  .cv-ux-header .brand-mark { width: 28px; height: 28px; font-size: 14px; }
  .cv-ux-back { width: 28px; }
  .cv-ux-login { font-size: 13px; padding: 7px 11px; }
  .cv-ux-progress li > span { width: 24px; height: 24px; font-size: 11px; }
  .cv-ux-progress li:last-child { flex-basis: 24px; }
  .cv-ux-progress li:after { left: 28px; right: 4px; top: 11px; height: 2px; }
  .cv-ux-progress svg { width: 14px; }
  .cv-ux-main { padding: 8px 20px 44px; }
  .cv-ux-main > .cv-guide-mark { transform: scale(.74); margin: -24px auto; }
  .cv-ux-main > h1, .cv-ux-step-template .cv-ux-main > h1 { font-size: 27px; margin: 42px auto 28px; }
  .cv-ux-choice > button { width: 120px; min-height: 60px; }
  .cv-ux-input-row { gap: 10px; }
  .cv-ux-input-row .cv-ux-primary { padding: 10px 16px; }
  .cv-ux-upload-panel { border-width: 6px; padding: 12px; border-radius: 18px; }
  .cv-ux-drop { padding: 20px 12px; }
  .cv-ux-privacy { font-size: 12px; align-items: flex-start; margin: 20px 0 4px; }
  .cv-ux-templates { grid-template-columns: 1fr; gap: 20px; max-width: 390px; }
  .cv-ux-template { padding: 16px 16px 22px; }
  .cv-ux-template > strong { font-size: 22px; margin-top: 18px; }
  .cv-ux-template-cta { position: static; transform: none; opacity: 1; order: 3; min-height: 52px; font-size: 18px; padding: 12px 20px; margin-top: 16px; }
  .cv-ux-template-description { font-size: 13px; margin-bottom: 26px; }
  .cv-ux-step-linkedin .cv-ux-input-row { flex-wrap: wrap; }
  .cv-ux-linkedin-input { flex-basis: 100%; }
  .cv-ux-step-linkedin .cv-ux-input-row > button { margin: 0 auto; }
  .cv-ux-import-alternatives { gap: 8px; font-size: 12px; flex-wrap: wrap; }
  .cv-studio-header { padding: 8px 10px; gap: 7px; }
  .cv-studio-header .brand > span:last-child { display: none; }
  .cv-studio-account { gap: 14px; }
  .cv-studio-account .cv-ux-primary { font-size: 12px; padding: 6px 10px; }
  .cv-studio-toolbar { position: relative; padding: 0 4px; }
  .cv-studio-toolbar button { min-height: 42px; font-size: 12px; padding: 8px 9px; gap: 5px; }
  .cv-studio-guide-toggle { order: 1; }
  .cv-studio-history { order: 2; }
  .cv-studio-tools { order: 3; flex: 1 1 100%; gap: 0; justify-content: space-between; border-top: 1px solid var(--line); }
  .cv-studio-tools button { flex-direction: column; flex: 1; padding: 8px 4px; font-size: 11px; white-space: normal; text-align: center; }
  .cv-studio-guide { width: calc(100% - 24px); padding: 12px; }
  .cv-guide-prompts { display: grid; }
  .cv-guide-prompts button { min-height: 40px; }
  .cv-studio-canvas { padding: 16px 12px 28px; }
  .cv-canvas-document-name { gap: 8px; }
  .cv-canvas-document-name input { width: 120px; }
  .cv-canvas-document-name > span { font-size: 10px; text-align: right; }
  .cv-canvas-paper { padding: 26px 22px; min-height: 850px; }
  .cv-canvas-columns { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .cv-canvas-contact { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .cv-canvas-field { font-size: 16px; }
  .cv-canvas-name { font-size: 28px; }
  .cv-canvas-role { font-size: 18px; }
  .cv-canvas-contact .cv-canvas-field, .cv-canvas-dates .cv-canvas-field { font-size: 16px; }
  .cv-canvas-section h2 { font-size: 18px; }
  .cv-canvas-remove { right: -20px; opacity: 1; }
  .cv-paper-modern .cv-canvas-personal { margin: -26px -22px 26px; padding: 26px 22px; }
  .cv-editor-panel { padding: 18px; }
  .cv-editor-presets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cv-editor-design select { min-width: 120px; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-ux-template-cta { transition: none; }
}
.cv-ux-mini-preview .resume-page { font-family: var(--font-geist-sans), sans-serif; }
.cv-ux-mini-preview .resume-preview-aside { width: auto; min-width: 0; }
.cv-ux-mini-preview .resume-preview-entry + .resume-preview-entry { margin-top: 3cqw; }
.cv-ux-mini-preview .resume-preview-entry ul { padding-left: 4cqw; margin-top: 2cqw; }
.cv-ux-mini-preview .resume-preview-entry li { margin-bottom: 1cqw; }
.cv-ux-mini-preview .resume-preview-aside li { padding: 1.5cqw 0; }
.cv-ux-mini-preview .resume-preview-aside section + section { margin-top: 5cqw; }
.cv-ux-mini-preview .resume-page h3 { padding-bottom: 2cqw; }
.cv-ux-mini-preview .resume-page p, .cv-ux-mini-preview .resume-page li { font-size: 2.05cqw; line-height: 1.4; }
.cv-ux-mini-preview .resume-preview-header > p { margin: 2cqw 0; }
.cv-ux-mini-preview .resume-page h3 { padding-bottom: 1cqw; margin-bottom: 2cqw; }
.cv-ux-mini-preview .resume-preview-main section + section { margin-top: 4cqw; }

/* Template-selection interstitial. */
.cv-preparing { position: relative; }
.cv-preparing-back { position: absolute; top: 24px; left: 24px; }
.cv-preparing-main { max-width: 1504px; margin: 0 auto; padding: 64px 32px 72px; text-align: center; }
.cv-preparing-main > .cv-guide-mark { transform: scale(1.2); margin: 24px auto 62px; }
.cv-preparing h1 { font-size: clamp(30px, 3vw, 44px); line-height: 1.2; letter-spacing: -.025em; font-weight: 550; margin: 0 0 24px; outline: none; }
.cv-preparing-intro { font-size: 21px; line-height: 1.5; color: var(--ink-soft); margin: 0 auto; max-width: 850px; }
.cv-preparing-status { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 26px auto 38px; font-size: 14px; color: var(--ink-soft); }
.cv-preparing-track { display: block; width: min(280px, 100%); height: 5px; border-radius: 10px; background: #dce2ff; overflow: hidden; }
.cv-preparing-track > span { display: block; width: 40%; height: 100%; border-radius: inherit; background: var(--blue); animation: cv-preparing-sweep 1.5s ease-in-out infinite; }
@keyframes cv-preparing-sweep { from { transform: translateX(-100%); } to { transform: translateX(350%); } }
.cv-preparing-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; text-align: left; }
.cv-preparing-services article { display: flex; gap: 22px; align-items: flex-start; background: var(--paper); border: 1px solid #e7e5dd; border-radius: 22px; padding: 28px; box-shadow: 0 8px 20px #11131806; }
.cv-preparing-icon { display: grid; place-items: center; width: 60px; height: 60px; flex-shrink: 0; border-radius: 16px; background: #e9edff; color: var(--blue); }
.cv-preparing-services h2 { font-size: 21px; line-height: 1.35; letter-spacing: -.015em; margin: 0 0 8px; font-weight: 600; }
.cv-preparing-services p { font-size: 17px; line-height: 1.5; color: var(--ink-soft); margin: 0; }
@media (max-width: 1100px) { .cv-preparing-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .cv-preparing-back { top: 12px; left: 12px; }
  .cv-preparing-main { padding: 52px 20px 36px; }
  .cv-preparing-main > .cv-guide-mark { transform: scale(.8); margin: -20px auto 12px; }
  .cv-preparing h1 { margin-bottom: 16px; }
  .cv-preparing-intro { font-size: 17px; }
  .cv-preparing-status { margin: 22px auto 28px; }
  .cv-preparing-services { grid-template-columns: 1fr; gap: 14px; }
  .cv-preparing-services article { padding: 20px; gap: 16px; border-radius: 16px; }
  .cv-preparing-icon { width: 48px; height: 48px; border-radius: 12px; }
  .cv-preparing-services h2 { font-size: 18px; }
  .cv-preparing-services p { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .cv-preparing-track > span { animation: none; transform: translateX(75%); } }

/* First arrival in the CV editor. */
.cv-welcome-dialog { position: fixed; inset: 0; margin: auto; width: min(900px, calc(100vw - 40px)); max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; padding: 36px; color: var(--ink); background: var(--paper); border: 1px solid #e6e4dc; border-radius: 14px; box-shadow: 0 28px 90px #11131833; }
.cv-welcome-dialog::backdrop { background: #202039b3; }
.cv-welcome-close { position: absolute; right: 12px; top: 12px; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-soft); }
.cv-welcome-close:hover { background: #efede5; }
.cv-welcome-header { display: flex; align-items: center; gap: 22px; padding-right: 18px; margin-bottom: 28px; }
.cv-welcome-avatar { width: 78px; height: 78px; flex-shrink: 0; }
.cv-welcome-avatar > .cv-guide-mark { transform: scale(.65); transform-origin: top left; }
.cv-welcome-header h2 { margin: 0; font-size: 30px; line-height: 1.3; letter-spacing: -.025em; font-weight: 550; outline: none; }
.cv-welcome-plan { display: grid; gap: 12px; }
.cv-welcome-plan section { padding: 18px 22px; border-radius: 12px; background: #eff1ff; }
.cv-welcome-plan h3 { margin: 0 0 6px; font-size: 20px; line-height: 1.35; font-weight: 650; letter-spacing: -.015em; }
.cv-welcome-plan p { margin: 0; font-size: 18px; line-height: 1.5; color: var(--ink-soft); }
.cv-welcome-plan .cv-welcome-later { background: transparent; border: 1px dashed #cacac9; }
.cv-welcome-reassurance { font-size: 17px; line-height: 1.5; margin: 28px 0; }
.cv-welcome-actions { display: flex; justify-content: flex-end; gap: 20px; }
.cv-welcome-actions button { display: inline-flex; justify-content: center; align-items: center; gap: 10px; padding: 16px 24px; min-height: 60px; border-radius: 8px; font-size: 19px; line-height: 1.3; font-weight: 650; }
.cv-welcome-original { background: var(--paper); border: 1px solid var(--ink); color: var(--ink); }
.cv-welcome-original:hover { background: #efede5; }
.cv-welcome-ai { background: var(--lime); border: 1px solid var(--lime); color: var(--ink); }
.cv-welcome-ai:hover { background: #ccef58; }
.cv-welcome-preview-note { margin: 0 0 22px; padding: 14px 18px; font-size: 16px; line-height: 1.5; border-radius: 8px; background: #eff1ff; color: var(--ink); }
@media (max-width: 600px) {
  .cv-welcome-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 28px 20px 20px; }
  .cv-welcome-header { gap: 12px; margin-bottom: 22px; padding-right: 36px; }
  .cv-welcome-avatar { width: 54px; height: 54px; }
  .cv-welcome-avatar > .cv-guide-mark { transform: scale(.45); }
  .cv-welcome-header h2 { font-size: 23px; }
  .cv-welcome-plan section { padding: 14px 16px; }
  .cv-welcome-plan h3 { font-size: 17px; }
  .cv-welcome-plan p { font-size: 15px; }
  .cv-welcome-reassurance { font-size: 15px; margin: 22px 0; }
  .cv-welcome-actions { flex-direction: column; gap: 12px; }
  .cv-welcome-actions button { width: 100%; font-size: 17px; min-height: 56px; padding: 14px 12px; }
}

/* Expanded free-tools directory. */
.tools-directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tool-choice-card { min-height: 460px; padding: clamp(24px, 3vw, 42px); }
.tool-choice-card:nth-child(3) { background: var(--paper); }
@media (max-width: 900px) {
  .tools-directory-grid { grid-template-columns: 1fr; }
  .tool-choice-card { min-height: 350px; }
  .tool-choice-card + .tool-choice-card { border-left: 1px solid var(--ink); border-top: 0; }
}
/* CV document editor ------------------------------------------------------ */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.cv-docs-shell {
  --cv-docs-blue: #1a73e8;
  --cv-docs-ink: #202124;
  --cv-docs-muted: #5f6368;
  --cv-docs-border: #dadce0;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: min(920px, calc(100svh - 24px));
  overflow: hidden;
  color: var(--cv-docs-ink);
  background: #f8fafd;
  border: 1px solid #e4e7eb;
  border-radius: 14px;
  box-shadow: 0 1px 2px #3c404314;
  font-family: Arial, Helvetica, sans-serif;
}

.cv-docs-titlebar {
  position: relative;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 60px;
  padding: 8px 14px;
  background: #f8fafd;
}

.cv-docs-title-start,
.cv-docs-title-actions,
.cv-docs-toolbar,
.cv-docs-toolbar-group,
.cv-docs-save-state,
.cv-docs-guide-button,
.cv-docs-save-button {
  display: flex;
  align-items: center;
}

.cv-docs-title-start {
  min-width: 0;
  gap: 10px;
}

.cv-docs-title-start > div:last-child {
  min-width: 0;
}

.cv-docs-file-icon {
  display: grid;
  flex: 0 0 auto;
  width: 38px;
  height: 42px;
  place-items: center;
  color: white;
  background: var(--cv-docs-blue);
  border-radius: 4px 4px 4px 8px;
}

.cv-docs-title-start input {
  display: block;
  width: min(420px, 45vw);
  height: 28px;
  padding: 2px 6px;
  color: var(--cv-docs-ink);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  font: 400 18px/1.25 Arial, sans-serif;
}

.cv-docs-title-start input:hover,
.cv-docs-title-start input:focus {
  background: white;
  border-color: var(--cv-docs-border);
  outline: none;
}

.cv-docs-back,
.cv-docs-menu a,
.cv-docs-menu-button,
.cv-docs-menu-trigger,
.cv-docs-guide-button,
.cv-docs-save-button,
.cv-docs-toolbar button {
  min-height: 30px;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 4px;
  font: inherit;
  cursor: pointer;
}

.cv-docs-back {
  width: 34px;
  font-size: 22px;
}

.cv-docs-menu {
  position: relative;
}

.cv-docs-menu-trigger,
.cv-docs-menu-button {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 24px;
  padding: 2px 7px;
  border-radius: 4px;
  color: #3c4043;
  font-size: 13px;
  list-style: none;
}

.cv-docs-change-template {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 12px;
  color: #3c4043;
  background: #fff;
  border: 1px solid #c9d1da;
  border-radius: 20px;
  font: 600 13px/1.2 Arial, sans-serif;
  white-space: nowrap;
  cursor: pointer;
}

.cv-docs-change-template:hover { background: #e8f0fe; border-color: #a8c7fa; }

.cv-docs-menu-trigger:hover,
.cv-docs-menu.is-open .cv-docs-menu-trigger,
.cv-docs-menu-button:hover,
.cv-docs-back:hover {
  background: #e8eaed;
}

.cv-docs-menu > div {
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  z-index: 20;
  display: grid;
  min-width: 210px;
  padding: 6px;
  background: white;
  border: 1px solid var(--cv-docs-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px #3c404329;
}

.cv-docs-menu > div button,
.cv-docs-menu > div a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-height: 34px;
  padding: 5px 10px;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  font-size: 13px;
}

.cv-docs-menu > div button:hover,
.cv-docs-menu > div a:hover {
  background: #f1f3f4;
}

.cv-docs-title-actions {
  flex: 0 0 auto;
  gap: 9px;
}

.cv-docs-title-actions .cv-docs-menu-trigger {
  min-height: 38px;
  padding: 7px 12px;
  background: #fff;
  border: 1px solid #c9d1da;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}

.cv-docs-title-actions .cv-docs-menu-trigger:hover,
.cv-docs-title-actions .cv-docs-menu.is-open .cv-docs-menu-trigger {
  background: #e8f0fe;
  border-color: #a8c7fa;
}

.cv-docs-title-actions .cv-docs-menu > div {
  right: 0;
  left: auto;
  min-width: 230px;
}

.cv-docs-save-state {
  gap: 5px;
  color: var(--cv-docs-muted);
  font-size: 12px;
  white-space: nowrap;
}

.cv-docs-save-state.is-error {
  color: #b3261e;
}

.cv-docs-guide-button,
.cv-docs-save-button {
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}

.cv-docs-guide-button {
  background: #c2e7ff;
}

.cv-docs-guide-button:hover,
.cv-docs-guide-button[aria-pressed="true"] {
  background: #a8d8f7;
}

.cv-docs-save-button {
  color: white;
  background: var(--cv-docs-blue);
}

.cv-docs-save-button:hover {
  background: #155db8;
}

.cv-docs-toolbar {
  position: relative;
  z-index: 10;
  flex: 0 0 auto;
  gap: 3px;
  min-height: 46px;
  padding: 5px 10px;
  overflow-x: auto;
  background: #edf2fa;
  border-radius: 22px;
  margin: 0 10px 8px;
  scrollbar-width: thin;
}

.cv-docs-toolbar-group {
  flex: 0 0 auto;
  gap: 1px;
  padding: 0 5px;
  border-right: 1px solid #c9d1da;
}

.cv-docs-toolbar-group:last-child {
  border-right: 0;
}

.cv-docs-toolbar button {
  display: grid;
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  place-items: center;
}

.cv-docs-toolbar button:hover:not(:disabled),
.cv-docs-toolbar button.is-active {
  background: #d3e3fd;
}

.cv-docs-toolbar button:disabled,
.cv-docs-menu button:disabled {
  cursor: default;
  opacity: .35;
}

.cv-docs-select {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 76px;
  height: 32px;
  border-radius: 4px;
}

.cv-docs-select:hover {
  background: #dce5f0;
}

.cv-docs-select select {
  width: 100%;
  height: 100%;
  padding: 0 22px 0 8px;
  color: var(--cv-docs-ink);
  background: transparent;
  border: 0;
  outline: none;
  appearance: none;
  font: 13px Arial, sans-serif;
  cursor: pointer;
}

.cv-docs-select > svg {
  position: absolute;
  right: 6px;
  pointer-events: none;
}

.cv-docs-select.alignment {
  min-width: 54px;
}

.cv-docs-select.icon-select {
  justify-content: flex-start;
  padding: 0 21px 0 7px;
}

.cv-docs-select.icon-select select {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.cv-docs-select.icon-select:focus-within {
  background: #d3e3fd;
  outline: 2px solid #1a73e8;
  outline-offset: -2px;
}

.cv-docs-select-icon {
  display: grid;
  place-items: center;
  pointer-events: none;
}

.cv-docs-zoom-control {
  position: relative;
  display: flex;
  align-items: center;
  width: 78px;
  height: 32px;
  border-radius: 4px;
}

.cv-docs-zoom-control:hover,
.cv-docs-zoom-control.is-open {
  background: #dce5f0;
}

.cv-docs-zoom-control > input {
  width: 100%;
  height: 100%;
  padding: 0 25px 0 8px;
  color: var(--cv-docs-ink);
  background: transparent;
  border: 0;
  border-radius: 4px;
  outline: none;
  font: 13px Arial, sans-serif;
}

.cv-docs-zoom-control > input:focus {
  background: white;
  box-shadow: inset 0 0 0 2px #1a73e8;
}

.cv-docs-zoom-control > button {
  position: absolute;
  top: 0;
  right: 0;
  width: 25px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  background: transparent;
  border: 0;
}

.cv-docs-zoom-menu {
  position: fixed;
  z-index: 1000;
  display: grid;
  width: 142px;
  padding: 6px 0;
  background: white;
  border: 1px solid #dadce0;
  border-radius: 4px;
  box-shadow: 0 4px 10px #3c40433d;
}

.cv-docs-zoom-menu > button {
  display: grid;
  grid-template-columns: 24px 1fr;
  align-items: center;
  width: 100%;
  height: 36px;
  min-height: 36px;
  padding: 4px 16px 4px 10px;
  color: var(--cv-docs-ink);
  background: white;
  border: 0;
  border-radius: 0;
  text-align: left;
  font: 14px Arial, sans-serif;
  cursor: pointer;
}

.cv-docs-zoom-menu > button:hover,
.cv-docs-zoom-menu > button[aria-selected="true"] {
  background: #f1f3f4;
}

.cv-docs-zoom-menu > button > span:first-child {
  display: grid;
  place-items: center;
}

.cv-docs-font-size > span {
  display: grid;
  min-width: 34px;
  height: 28px;
  place-items: center;
  color: var(--cv-docs-ink);
  background: #fff;
  border: 1px solid #8a929c;
  border-radius: 5px;
  font: 14px Arial, sans-serif;
}

.cv-docs-colour-control {
  position: relative;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 4px;
  cursor: pointer;
}

.cv-docs-colour-control:hover {
  background: #d3e3fd;
}

.cv-docs-colour-control input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.cv-docs-text-colour-icon,
.cv-docs-highlight-icon {
  position: relative;
  display: grid;
  width: 22px;
  height: 25px;
  place-items: center;
  font: 600 20px/1 Arial, sans-serif;
}

.cv-docs-text-colour-icon::after,
.cv-docs-highlight-icon::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 4px;
  background: var(--cv-docs-control-colour);
  content: "";
}

.cv-docs-prosemirror [data-cv-indent="1"] { margin-left: 18pt !important; }
.cv-docs-prosemirror [data-cv-indent="2"] { margin-left: 36pt !important; }
.cv-docs-prosemirror [data-cv-indent="3"] { margin-left: 54pt !important; }
.cv-docs-prosemirror [data-cv-indent="4"] { margin-left: 72pt !important; }
.cv-docs-prosemirror [data-cv-indent="5"] { margin-left: 90pt !important; }
.cv-docs-prosemirror [data-cv-indent="6"] { margin-left: 108pt !important; }
.cv-docs-prosemirror [data-cv-indent="7"] { margin-left: 126pt !important; }
.cv-docs-prosemirror [data-cv-indent="8"] { margin-left: 144pt !important; }

.cv-docs-body {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr);
  min-height: 650px;
  overflow: hidden;
  border-top: 1px solid #dde1e5;
}

.cv-docs-body.has-guide {
  grid-template-columns: 286px minmax(0, 1fr);
}

.cv-docs-body.has-guide > .cv-docs-workspace {
  grid-row: 1;
  grid-column: 2;
}

.cv-docs-workspace {
  position: relative;
  min-width: 0;
  padding: 18px 32px 56px;
  overflow: auto;
  background: #f1f3f4;
}

.cv-docs-paper-wrap {
  width: 816px;
  max-width: none;
  margin: 0 auto;
  zoom: var(--cv-docs-zoom);
}

.cv-docs-paper {
  --cv-docs-accent: #1a73e8;
  --cv-docs-font: Arial, sans-serif;
  width: 816px;
  min-height: 1056px;
  padding: 72px 82px 88px;
  color: #202124;
  background: white;
  border: 1px solid #c7c9cc;
  box-shadow: 0 2px 8px #3c40432b;
  box-sizing: border-box;
  font-family: var(--cv-docs-font);
  position: relative;
}

.cv-docs-paper > .tiptap {
  position: relative;
  z-index: 1;
}

.cv-docs-page-boundaries {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.cv-docs-page-boundaries span {
  position: absolute;
  right: -1px;
  left: -1px;
  height: 2px;
  background: #c7c9cc;
  box-shadow: 0 5px 8px #3c40431f;
}

.cv-docs-prosemirror {
  min-height: 894px;
  outline: none;
  overflow-wrap: anywhere;
  caret-color: var(--cv-docs-blue);
}

.cv-docs-paper.is-format-painting .cv-docs-prosemirror {
  cursor: crosshair;
}

.cv-docs-prosemirror ::selection {
  background: #c2e7ff;
}

.cv-docs-prosemirror h1,
.cv-docs-prosemirror h2,
.cv-docs-prosemirror h3,
.cv-docs-prosemirror p,
.cv-docs-prosemirror ul,
.cv-docs-prosemirror ol {
  font-family: inherit;
}

.cv-docs-prosemirror h1 {
  margin: 0 0 4px;
  text-align: center;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.2;
}

.cv-docs-prosemirror h1 + p {
  margin: 0 0 5px;
  text-align: center;
  color: var(--cv-docs-accent);
  font-size: 15px;
  font-weight: 600;
}

.cv-docs-prosemirror h1 + p + p {
  margin: 0 0 18px;
  text-align: center;
  color: #5f6368;
  font-size: 9.5px;
}

.cv-docs-prosemirror h2 {
  margin: 22px 0 8px;
  padding-bottom: 4px;
  color: var(--cv-docs-accent);
  border-bottom: 1px solid color-mix(in srgb, var(--cv-docs-accent) 60%, white);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.25;
  text-transform: uppercase;
}

.cv-docs-prosemirror h3 {
  margin: 12px 0 2px;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.35;
}

.cv-docs-prosemirror p {
  min-height: 1.25em;
  margin: 0 0 7px;
  font-size: 11px;
  line-height: 1.42;
}

.cv-docs-prosemirror h3 + p {
  margin-bottom: 4px;
  color: #5f6368;
  font-size: 9.5px;
}

.cv-docs-prosemirror ul,
.cv-docs-prosemirror ol {
  margin: 4px 0 9px;
  padding-left: 22px;
  font-size: 11px;
  line-height: 1.42;
  list-style-position: outside;
}

.cv-docs-prosemirror ul { list-style-type: disc; }
.cv-docs-prosemirror ul ul { list-style-type: circle; }
.cv-docs-prosemirror ul ul ul { list-style-type: square; }
.cv-docs-prosemirror ol { list-style-type: decimal; }
.cv-docs-prosemirror ol ol { list-style-type: lower-alpha; }
.cv-docs-prosemirror ol ol ol { list-style-type: lower-roman; }

.cv-docs-prosemirror li > p[data-cv-indent] { margin-left: 0 !important; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="1"]) { margin-left: 18pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="2"]) { margin-left: 36pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="3"]) { margin-left: 54pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="4"]) { margin-left: 72pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="5"]) { margin-left: 90pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="6"]) { margin-left: 108pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="7"]) { margin-left: 126pt; }
.cv-docs-prosemirror li:has(> p[data-cv-indent="8"]) { margin-left: 144pt; }
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="1"]),
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="4"]),
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="7"]) { list-style-type: circle; }
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="2"]),
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="5"]),
.cv-docs-prosemirror ul > li:has(> p[data-cv-indent="8"]) { list-style-type: square; }
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="1"]),
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="4"]),
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="7"]) { list-style-type: lower-alpha; }
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="2"]),
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="5"]),
.cv-docs-prosemirror ol > li:has(> p[data-cv-indent="8"]) { list-style-type: lower-roman; }

.cv-docs-prosemirror li {
  margin-bottom: 3px;
}

.cv-docs-prosemirror li > p {
  margin: 0;
}

.cv-docs-prosemirror hr {
  margin: 16px 0 8px;
  border: 0;
  border-top: 1px solid #9aa0a6;
}

.cv-docs-prosemirror a {
  color: #1155cc;
  text-decoration: underline;
}

.cv-docs-link-control { display: flex; }

.cv-docs-link-popover {
  position: fixed;
  z-index: 60;
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  width: min(360px, calc(100vw - 16px));
  padding: 8px;
  background: #fff;
  border: 1px solid #c7c9cc;
  border-radius: 8px;
  box-shadow: 0 8px 24px #3c404329;
  font: 13px/1.2 Arial, sans-serif;
}

.cv-docs-link-popover > svg { color: #5f6368; }

.cv-docs-link-popover input {
  min-width: 0;
  height: 32px;
  padding: 5px 8px;
  color: #202124;
  background: #f8fafd;
  border: 1px solid #9aa0a6;
  border-radius: 4px;
  outline: none;
  font: inherit;
}

.cv-docs-link-popover input:focus { border-color: #1a73e8; box-shadow: 0 0 0 1px #1a73e8; }
.cv-docs-link-popover button { width: auto; min-width: 0; height: 32px; padding: 0 10px; border: 0; border-radius: 16px; font: 600 12px/1 Arial, sans-serif; cursor: pointer; }
.cv-docs-link-remove { color: #1a73e8; background: transparent; }
.cv-docs-link-apply { color: #fff; background: #1a73e8; }

.cv-docs-prosemirror .is-empty::before {
  float: left;
  height: 0;
  color: #9aa0a6;
  content: attr(data-placeholder);
  pointer-events: none;
}

.cv-docs-prosemirror h1.is-empty::before {
  float: none;
  display: inline-block;
}

/* CV presentation styles. Semantic heading levels remain stable, so changing
   the presentation does not replace the user's edited document content. */
.cv-docs-template-stanford,
.cv-docs-template-yale,
.cv-docs-template-tuck {
  --cv-docs-font: Garamond, "EB Garamond", Georgia, "Times New Roman", serif !important;
}

.cv-docs-template-mit-sloan {
  --cv-docs-font: Arial, Helvetica, sans-serif !important;
}

.cv-docs-template-columbia {
  --cv-docs-font: Georgia, "Times New Roman", serif !important;
}

.cv-docs-template-fuqua-one,
.cv-docs-template-haas,
.cv-docs-template-fuqua-executive {
  --cv-docs-font: Arial, Helvetica, sans-serif !important;
}

.cv-docs-template-stanford { padding: 42px 48px 52px; }
.cv-docs-template-stanford .cv-docs-prosemirror h1 { margin: 0 0 2px; font-size: 30px; font-weight: 700; letter-spacing: .015em; line-height: 1.05; text-transform: uppercase; }
.cv-docs-template-stanford .cv-docs-prosemirror h1 + p { margin: 0 0 3px; color: #111; font-size: 14px; font-weight: 700; line-height: 1.18; text-align: center; text-transform: uppercase; }
.cv-docs-template-stanford .cv-docs-prosemirror h1 + p + p,
.cv-docs-template-stanford .cv-docs-prosemirror h1 + p + p + p { margin: 0 0 2px; color: #111; font-size: 14px; line-height: 1.18; text-align: center; }
.cv-docs-template-stanford .cv-docs-prosemirror > hr { display: none; }
.cv-docs-template-stanford .cv-docs-prosemirror h2 { clear: both; margin: 20px 0 10px; padding: 0 0 3px; color: #111; border: 0; border-bottom: 1.5px solid #111; font-size: 16px; font-weight: 700; letter-spacing: .01em; line-height: 1.15; text-transform: uppercase; }
.cv-docs-template-stanford .cv-docs-prosemirror > hr + h2 { margin-top: 18px; }
.cv-docs-template-stanford .cv-docs-prosemirror h3 { float: left; clear: left; width: 72%; margin: 9px 0 3px; font-size: 14px; font-weight: 700; line-height: 1.22; text-transform: uppercase; }
.cv-docs-template-stanford .cv-docs-prosemirror h3 + p { float: right; clear: right; width: 28%; min-height: 0; margin: 9px 0 3px; color: #111; font-size: 14px; font-style: normal; font-weight: 700; line-height: 1.22; text-align: right; }
.cv-docs-template-stanford .cv-docs-prosemirror h3 + p + p { clear: both; margin: 0 0 2px; font-size: 14px; line-height: 1.22; }
.cv-docs-template-stanford .cv-docs-prosemirror h3 + p + p + p { clear: both; margin: 0 0 9px; font-size: 14px; line-height: 1.22; }
.cv-docs-template-stanford .cv-docs-prosemirror ul,
.cv-docs-template-stanford .cv-docs-prosemirror ol { clear: both; margin: 3px 0 10px; padding-left: 20px; font-size: 14px; line-height: 1.28; }
.cv-docs-template-stanford .cv-docs-prosemirror ul { list-style-type: disc; }
.cv-docs-template-stanford .cv-docs-prosemirror ol { list-style-type: decimal; }
.cv-docs-template-stanford .cv-docs-prosemirror li::marker { color: #111; font-size: .9em; }
.cv-docs-template-stanford .cv-docs-prosemirror li { margin-bottom: 5px; padding-left: 2px; }
.cv-docs-template-stanford .cv-docs-prosemirror h2 + p { margin: 0 0 12px; font-size: 14px; line-height: 1.3; }
.cv-docs-template-stanford .cv-docs-prosemirror :is(ul, ol) + p:has(u) { clear: both; margin: 6px 0 4px; font-size: 14px; line-height: 1.22; }
.cv-docs-template-stanford .cv-docs-prosemirror p:has(u) + :is(ul, ol) { margin-top: 0; }

.cv-docs-template-yale .cv-docs-prosemirror h1,
.cv-docs-template-yale .cv-docs-prosemirror h1 + p,
.cv-docs-template-yale .cv-docs-prosemirror h1 + p + p { text-align: left; }
.cv-docs-template-yale .cv-docs-prosemirror h1 { font-size: 25px; letter-spacing: .03em; text-transform: uppercase; }
.cv-docs-template-yale .cv-docs-prosemirror h1 + p { color: #202124; font-style: italic; font-weight: 400; }
.cv-docs-template-yale .cv-docs-prosemirror h2 { color: #111; border-bottom-color: #555; font-size: 12px; letter-spacing: .08em; }

.cv-docs-template-tuck .cv-docs-prosemirror h1 { font-size: 27px; letter-spacing: .01em; }
.cv-docs-template-tuck .cv-docs-prosemirror h1 + p { color: #202124; font-weight: 400; }
.cv-docs-template-tuck .cv-docs-prosemirror h2 { color: #111; border-top: 1px solid #555; border-bottom: 1px solid #555; padding: 3px 0; text-align: center; }

.cv-docs-template-fuqua-one { padding: 62px 70px 76px; }
.cv-docs-template-fuqua-one .cv-docs-prosemirror h1 { font-size: 25px; }
.cv-docs-template-fuqua-one .cv-docs-prosemirror h1 + p { color: #202124; }
.cv-docs-template-fuqua-one .cv-docs-prosemirror h2 { color: #111; border-bottom: 2px solid #111; font-size: 12px; letter-spacing: 0; }
.cv-docs-template-fuqua-one .cv-docs-prosemirror p,
.cv-docs-template-fuqua-one .cv-docs-prosemirror li { font-size: 10.5px; line-height: 1.35; }

.cv-docs-template-haas {
  --cv-docs-font: Calibri, Carlito, Arial, Helvetica, sans-serif !important;
  width: 8.5in;
  min-height: 11in;
  padding: .5in .75in;
  color: #000;
}
.cv-docs-template-haas .cv-docs-prosemirror { font-family: var(--cv-docs-font); font-size: 10pt; line-height: 12.25pt; overflow-wrap: break-word; }
.cv-docs-template-haas .cv-docs-prosemirror :is(p, h1, h2, h3, li) { min-height: 0; margin: 0; padding: 0; color: #000; font-size: 10pt; line-height: 12.25pt; letter-spacing: normal; }
.cv-docs-template-haas .cv-docs-prosemirror h1,
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="name"] { font-size: 18pt; font-variant-caps: small-caps; font-weight: 700; line-height: 18.8pt; text-align: center; text-transform: none; }
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="subtitle"],
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="contact"] { color: #000; font-size: 10.5pt; font-weight: 400; line-height: 16.7pt; text-align: center; }
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="contact"] { border-bottom: 3px double #000; }
.cv-docs-template-haas .cv-docs-prosemirror h2,
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="section"] { margin: 0; padding: 0; color: #000; border-top: .5pt solid #000; border-bottom: .5pt solid #000; font-size: 12pt; font-weight: 700; letter-spacing: 0; line-height: 15.2pt; text-align: center; text-transform: uppercase; }
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="contact"] + [data-sierra-style="section"] { border-top: 0; }
.cv-docs-template-haas .cv-docs-prosemirror h3,
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="role"],
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="qualification"] { margin: 6pt 0 0; font-size: 11pt; font-weight: 400; line-height: 12.8pt; }
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="section"] + :is([data-sierra-style="role"], [data-sierra-style="qualification"]) { margin-top: 0; }
.cv-docs-template-haas .cv-docs-prosemirror :is([data-sierra-style="role"], [data-sierra-style="qualification"]):has([data-resume-tab]) { display: flex; gap: 0; align-items: baseline; }
.cv-docs-template-haas [data-resume-tab] { display: inline-block; flex: 1; min-width: 12pt; white-space: pre; }
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="company"],
.cv-docs-template-haas .cv-docs-prosemirror [data-sierra-style="context"] { font-size: 11pt; line-height: 12.8pt; }
.cv-docs-template-haas .cv-docs-prosemirror :is(ul, ol) { margin: 0; padding-left: .2in; font-size: 10pt; line-height: 12.25pt; }
.cv-docs-template-haas .cv-docs-prosemirror :is(ul, ol) :is(ul, ol) { padding-left: .25in; }
.cv-docs-template-haas .cv-docs-prosemirror li { margin: 0; padding-left: 0; font-size: 10pt; line-height: 12.25pt; }
.cv-docs-template-haas .cv-docs-prosemirror li::marker { color: #000; font-size: 9pt; }

.cv-docs-template-mit-sloan { padding: 56px 68px 70px; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1,
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1 + p,
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1 + p + p { text-align: left; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1 { font-size: 28px; font-weight: 700; letter-spacing: -.025em; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1 + p { color: #202124; font-size: 13px; font-weight: 600; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror h1 + p + p { margin-bottom: 24px; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror h2 { margin-top: 20px; color: #111; border: 0; padding: 0; font-size: 11px; font-weight: 800; letter-spacing: .09em; }
.cv-docs-template-mit-sloan .cv-docs-prosemirror p,
.cv-docs-template-mit-sloan .cv-docs-prosemirror li { font-size: 10.5px; line-height: 1.38; }

.cv-docs-template-columbia { padding: 62px 68px 78px; }
.cv-docs-template-columbia .cv-docs-prosemirror h1,
.cv-docs-template-columbia .cv-docs-prosemirror h1 + p,
.cv-docs-template-columbia .cv-docs-prosemirror h1 + p + p { text-align: right; }
.cv-docs-template-columbia .cv-docs-prosemirror h1 { font-size: 29px; letter-spacing: .035em; text-transform: uppercase; }
.cv-docs-template-columbia .cv-docs-prosemirror h1 + p { color: #202124; font-weight: 400; }
.cv-docs-template-columbia .cv-docs-prosemirror h1 + p + p { margin-bottom: 26px; }
.cv-docs-template-columbia .cv-docs-prosemirror h2 { margin-top: 26px; color: #111; border-top: 1px solid #555; border-bottom: 1px solid #555; padding: 4px 0; text-align: center; letter-spacing: .08em; }
.cv-docs-template-columbia .cv-docs-prosemirror p,
.cv-docs-template-columbia .cv-docs-prosemirror li { font-size: 11px; line-height: 1.48; }

.cv-docs-template-fuqua-executive .cv-docs-prosemirror h1 { font-size: 27px; }
.cv-docs-template-fuqua-executive .cv-docs-prosemirror h1 + p { color: #202124; }
.cv-docs-template-fuqua-executive .cv-docs-prosemirror h2 { color: #111; border-bottom-color: #555; text-align: center; letter-spacing: .03em; }
.cv-docs-template-fuqua-executive .cv-docs-prosemirror p { line-height: 1.48; }

/* Matching compact previews for template selection. */
.cv-ux-mini-preview :is(.template-stanford, .template-yale, .template-tuck) { font-family: Garamond, "EB Garamond", Georgia, "Times New Roman", serif; }
.cv-ux-mini-preview .template-stanford { padding: 5.2cqw 4.6cqw; }
.cv-ux-mini-preview .template-stanford .resume-preview-header { margin-bottom: 4cqw; padding: 0; border: 0; }
.cv-ux-mini-preview .template-stanford .resume-preview-header h2 { font-size: 7cqw; font-weight: 700; letter-spacing: .015em; text-transform: uppercase; }
.cv-ux-mini-preview .template-stanford .resume-preview-header > p { margin: .5cqw 0; font-size: 2.8cqw; font-weight: 700; line-height: 1.15; text-transform: uppercase; }
.cv-ux-mini-preview .template-stanford .resume-preview-header small { display: block; font-size: 2.4cqw; line-height: 1.2; }
.cv-ux-mini-preview .template-stanford .resume-preview-main section + section { margin-top: 5cqw; }
.cv-ux-mini-preview .template-stanford .resume-page h3 { margin: 0 0 3.2cqw; padding: 0 0 1cqw; color: #111; border: 0; border-bottom: 1px solid #111; font-size: 3.6cqw; font-weight: 700; letter-spacing: .01em; text-transform: uppercase; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry + .resume-preview-entry { margin-top: 5cqw; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry > div { display: grid; grid-template-columns: minmax(0, 1fr) 31%; gap: 2cqw; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry h4 { font-size: 2.8cqw; font-weight: 700; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry-primary { text-transform: uppercase; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry-secondary { text-decoration: underline; text-transform: none; }
.cv-ux-mini-preview .template-stanford .resume-preview-entry-meta { color: #111; font-size: 2.8cqw; font-weight: 700; line-height: 1.2; text-align: right; }
.cv-ux-mini-preview .template-stanford .resume-preview-context { margin: .8cqw 0 2.2cqw; font-size: 2.6cqw; font-style: italic; }
.cv-ux-mini-preview .template-stanford :is(.resume-preview-entry ul, .resume-preview-main > section:first-child ul) { margin: 1.2cqw 0 0; padding-left: 4cqw; }
.cv-ux-mini-preview .template-stanford li { margin-bottom: 1.5cqw; line-height: 1.25; }
.cv-ux-mini-preview .template-stanford .resume-preview-achievements { margin: 2.4cqw 0 1.2cqw; font-size: 2.6cqw; }
.cv-ux-mini-preview .template-stanford :is(.resume-preview-skills, .resume-preview-additional) p { font-size: 2.6cqw; line-height: 1.3; }
.cv-ux-mini-preview .template-mit-sloan { font-family: Arial, Helvetica, sans-serif; }
.cv-ux-mini-preview .template-columbia { border-top: 1.4cqw solid #111; font-family: Georgia, "Times New Roman", serif; padding-top: 6.6cqw; }
.cv-ux-mini-preview :is(.template-fuqua-one, .template-haas, .template-fuqua-executive) { font-family: Arial, Helvetica, sans-serif; }
.cv-ux-mini-preview :is(.template-stanford, .template-tuck, .template-fuqua-one, .template-haas, .template-fuqua-executive) .resume-preview-header { text-align: center; }
.cv-ux-mini-preview .template-yale .resume-preview-header { text-align: left; }
.cv-ux-mini-preview .template-mit-sloan .resume-preview-header { border: 0; padding: 0; text-align: left; }
.cv-ux-mini-preview .template-mit-sloan .resume-preview-header h2 { font-size: 7.4cqw; letter-spacing: -.025em; text-transform: none; }
.cv-ux-mini-preview .template-mit-sloan h3 { border: 0; color: #111; font-weight: 800; letter-spacing: .09em; }
.cv-ux-mini-preview .template-columbia .resume-preview-header { text-align: right; }
.cv-ux-mini-preview .template-columbia .resume-preview-header { border: 0; padding-bottom: 1cqw; }
.cv-ux-mini-preview .template-columbia .resume-preview-header h2 { font-size: 7cqw; letter-spacing: .035em; }
.cv-ux-mini-preview :is(.template-tuck, .template-haas, .template-columbia, .template-fuqua-executive) h3 { text-align: center; }
.cv-ux-mini-preview .template-columbia h3 { border-top: 1px solid #555; border-bottom-color: #555; padding: 1.3cqw 0; letter-spacing: .08em; }
.cv-ux-mini-preview :is(.template-tuck, .template-haas) h3 { border-top: 1px solid #555; }
.cv-ux-mini-preview :is(.template-stanford, .template-yale, .template-tuck, .template-fuqua-one, .template-haas, .template-mit-sloan, .template-columbia, .template-fuqua-executive) .resume-preview-body { display: block; }
.cv-ux-mini-preview :is(.template-stanford, .template-yale, .template-tuck, .template-fuqua-one, .template-haas, .template-mit-sloan, .template-columbia, .template-fuqua-executive) .resume-preview-aside { margin-top: 4cqw; }
.cv-ux-mini-preview .template-haas :is(p, li, span),
.cv-ux-mini-preview .template-columbia :is(p, li, span) { line-height: 1.25; }

.cv-docs-message {
  position: fixed;
  right: 24px;
  bottom: 38px;
  z-index: 30;
  padding: 9px 13px;
  background: #202124;
  color: white;
  border-radius: 5px;
  box-shadow: 0 5px 18px #20212433;
  font-size: 12px;
}

.cv-docs-message.is-error {
  background: #b3261e;
}

.cv-docs-guide {
  position: relative;
  z-index: 3;
  grid-row: 1;
  grid-column: 1;
  padding: 22px 20px;
  overflow-y: auto;
  background: white;
  border-right: 1px solid var(--cv-docs-border);
}

.cv-docs-guide > header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.cv-docs-guide > header > svg {
  color: var(--cv-docs-blue);
}

.cv-docs-guide > header div {
  display: grid;
  gap: 2px;
}

.cv-docs-guide > header strong {
  font-size: 15px;
}

.cv-docs-guide > header span,
.cv-docs-guide > small {
  color: var(--cv-docs-muted);
  font-size: 11px;
}

.cv-docs-guide-progress {
  height: 4px;
  overflow: hidden;
  background: #e8eaed;
  border-radius: 999px;
}

.cv-docs-guide-progress span {
  display: block;
  height: 100%;
  background: #34a853;
  border-radius: inherit;
  transition: width .2s ease;
}

.cv-docs-guide > p {
  margin: 16px 0;
  color: #4f5358;
  font-size: 12px;
  line-height: 1.55;
}

.cv-docs-guide ul {
  display: grid;
  gap: 7px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.cv-docs-guide li {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #50545a;
  font-size: 12px;
}

.cv-docs-guide li > span {
  display: grid;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 1px solid #bdc1c6;
  border-radius: 50%;
}

.cv-docs-guide li.is-complete {
  color: #276738;
}

.cv-docs-guide li.is-complete > span {
  color: white;
  background: #34a853;
  border-color: #34a853;
}

.cv-docs-guide-tip {
  margin: 22px 0 18px;
  padding: 13px;
  background: #f3f7ff;
  border: 1px solid #d3e3fd;
  border-radius: 8px;
}

.cv-docs-guide-tip strong {
  font-size: 12px;
}

.cv-docs-guide-tip p {
  margin: 5px 0 0;
  color: #4b5056;
  font-size: 11px;
  line-height: 1.5;
}

.cv-docs-statusbar {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  min-height: 26px;
  padding: 5px 14px;
  color: #5f6368;
  background: #f8fafd;
  border-top: 1px solid #dde1e5;
  font: 11px Arial, sans-serif;
}

@media (max-width: 1050px) {
  .cv-docs-body.has-guide {
    grid-template-columns: 240px minmax(0, 1fr);
  }
  .cv-docs-workspace {
    padding-right: 18px;
    padding-left: 18px;
  }
  .cv-docs-save-state {
    display: none;
  }
}

@media (max-width: 760px) {
  .cv-docs-shell {
    min-height: 100svh;
    overflow: visible;
    border: 0;
    border-radius: 0;
  }
  .cv-docs-titlebar {
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    padding: 8px;
  }
  .cv-docs-file-icon {
    display: none;
  }
  .cv-docs-title-start {
    flex: 1 1 calc(100% - 54px);
  }
  .cv-docs-title-start > div:last-child { width: 100%; }
  .cv-docs-title-start input {
    width: 100%;
    font-size: 16px;
  }
  .cv-docs-title-actions {
    flex: 1 1 100%;
    justify-content: flex-end;
    padding-top: 2px;
  }
  .cv-docs-title-actions .cv-docs-menu-trigger {
    justify-content: center;
    width: 38px;
    min-width: 38px;
    padding: 7px;
    font-size: 0;
  }
  .cv-docs-title-actions .cv-docs-menu-trigger > svg:last-child { display: none; }
  .cv-docs-guide-button { min-width: 38px; padding: 7px 10px; font-size: 0; }
  .cv-docs-change-template { width: 38px; min-width: 38px; padding: 7px; font-size: 0; }
  .cv-docs-save-button {
    min-width: 40px;
    padding: 7px 10px;
    font-size: 0;
  }
  .cv-docs-save-button svg {
    width: 17px;
    height: 17px;
  }
  .cv-docs-toolbar {
    margin-right: 4px;
    margin-left: 4px;
    border-radius: 10px;
  }
  .cv-docs-body.has-guide {
    display: block;
  }
  .cv-docs-workspace {
    padding: 12px 10px 40px;
    overflow-x: hidden;
  }
  .cv-docs-paper-wrap {
    width: 100%;
    margin: 0 auto;
    zoom: 1;
  }
  .cv-docs-paper {
    width: 100%;
    min-height: calc((100vw - 20px) * 1.294);
    padding: 40px 28px 52px;
  }
  .cv-docs-page-boundaries { display: none; }
  .cv-docs-body.has-guide > .cv-docs-guide {
    display: block;
    max-height: 330px;
    border-top: 1px solid var(--cv-docs-border);
    border-right: 0;
  }
}

@media print {
  @page { size: letter; margin: .65in; }
  .cv-docs-titlebar,
  .cv-docs-toolbar,
  .cv-docs-ruler,
  .cv-docs-guide,
  .cv-docs-statusbar,
  .app-page-header {
    display: none !important;
  }
  .cv-docs-shell,
  .cv-docs-body,
  .cv-docs-workspace {
    display: block;
    min-height: 0;
    overflow: visible;
    background: white;
    border: 0;
    box-shadow: none;
  }
  .cv-docs-workspace {
    padding: 0;
  }
  .cv-docs-paper-wrap {
    width: auto;
    zoom: 1;
  }
  .cv-docs-paper {
    width: auto;
    min-height: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }
  .cv-docs-page-boundaries { display: none; }
  .cv-docs-prosemirror h1,
  .cv-docs-prosemirror h2,
  .cv-docs-prosemirror h3 { break-after: avoid; }
  .cv-docs-prosemirror li,
  .cv-docs-prosemirror p { break-inside: avoid; }
}

/* Signature follows the supplied Word template: dimensions in points/inches,
   native role spacing, justified hanging bullets and a right-aligned date tab. */
.cv-docs-template-signature {
  --cv-docs-font: Garamond, "EB Garamond", Georgia, serif !important;
  width: 8.5in;
  min-height: 11in;
  padding: .4375in .5in .4in;
  color: #000;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.cv-docs-template-signature .cv-docs-page-boundaries .cv-docs-page-sheet { right: 0; left: 0; width: 8.5in; height: 11in; background: #fff; border: 1px solid #c7c9cc; box-shadow: 0 2px 8px #3c40432b; box-sizing: border-box; }
.cv-docs-template-signature .cv-docs-prosemirror > [data-cv-page-start] { border-top: var(--cv-page-shift) solid transparent !important; }
.cv-docs-template-signature .cv-docs-prosemirror { font-family: var(--cv-docs-font); font-size: 11pt; line-height: 1.12; overflow-wrap: break-word; }
.cv-docs-template-signature .cv-docs-prosemirror :is(p, h1, h2, h3, li) { min-height: 1.12em; margin: 0; padding: 0; color: #000; border: 0; font-size: 11pt; line-height: 1.12; letter-spacing: normal; text-align: justify; }
.cv-docs-template-signature .cv-docs-prosemirror h1 { font-size: 22pt; font-weight: 700; text-align: center; }
.cv-docs-template-signature .cv-docs-prosemirror h1 + p,
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="subtitle"] { font-size: 11pt; font-weight: 700; text-align: center; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="contact"] { font-size: 11pt; font-weight: 400; text-align: center; }
.cv-docs-template-signature .cv-docs-prosemirror h2 { margin-bottom: 4pt; padding-bottom: 1pt; border-bottom: .75pt solid #000; font-size: 12pt; font-weight: 700; text-transform: uppercase; }
.cv-docs-template-signature .cv-docs-prosemirror h3 { margin-top: 6pt; font-weight: 700; }
.cv-docs-template-signature .cv-docs-prosemirror h3:has([data-resume-tab]) { display: flex; gap: 0; text-align: left; align-items: baseline; }
.cv-docs-template-signature [data-resume-tab] { display: inline-block; flex: 1; min-width: 12pt; white-space: pre; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="company"] { font-weight: 700; text-decoration: underline; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="context"] { margin-bottom: 3pt; font-style: italic; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="achievement"] { margin: 3pt 0; font-weight: 700; text-decoration: underline; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="education-detail"] { padding-left: 36pt; position: relative; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="education-detail"]::before { position: absolute; left: 18pt; content: "o"; font-family: "Courier New", monospace; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="qualification"] { margin-top: 0; text-transform: none; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="qualification-next"] { margin-top: 3pt; text-transform: none; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style^="skills"] { text-align: center; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="header-gap"] { font-size: 6.5pt; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="summary-gap"] { font-size: 10.5pt; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style="role-gap"] { font-size: 4pt; }
.cv-docs-template-signature .cv-docs-prosemirror [data-sierra-style$="gap"]::before { display: none; }
.cv-docs-template-signature .cv-docs-prosemirror :is(ul, ol) { margin: 0; padding-left: 14pt; font-size: 11pt; line-height: 1.12; }
.cv-docs-template-signature .cv-docs-prosemirror :is(ul, ol) :is(ul, ol) { padding-left: 18pt; }
.cv-docs-template-signature .cv-docs-prosemirror li { margin: 0; }
.cv-docs-toolbar[hidden] { display: none; }
.cv-print-preview { width: min(100%, 900px); margin: 0 auto; }
.cv-print-preview > p { margin: 0 0 16px; font-size: 14px; }
.cv-print-preview iframe { width: 100%; height: max(75vh, 700px); border: 0; background: #fff; }
.cv-ux-mini-preview .template-signature { font-family: Garamond, "EB Garamond", Georgia, serif; padding: 4cqw; }
.cv-ux-mini-preview .template-signature .resume-preview-header { text-align: center; border: 0; margin-bottom: 3cqw; }
.cv-ux-mini-preview .template-signature h3 { border-bottom: 1px solid #000; color: #000; text-transform: uppercase; }
.cv-ux-mini-preview .template-signature .resume-preview-body { display: block; }
.cv-ux-mini-preview .template-signature .resume-preview-context { font-style: italic; }
.cv-ux-mini-preview .template-signature .resume-preview-entry-primary { text-transform: uppercase; }
.cv-ux-mini-preview .template-signature .resume-preview-entry-secondary { text-decoration: underline; }
.cv-docs-export-note { max-width: 235px; padding: 6px 12px; margin: 0; color: #5f6368; font-size: 12px; line-height: 1.4; }
@media screen and (max-width: 700px) {
  .cv-docs-workspace:has(.cv-docs-template-signature) { overflow-x: auto; }
  .cv-docs-paper-wrap:has(.cv-docs-template-signature) { width: 816px; zoom: var(--cv-docs-zoom); }
  .cv-docs-template-signature .cv-docs-page-boundaries { display: block; }
}
@media print {
  .cv-docs-template-signature { min-height: 0 !important; background: #fff; }
  .cv-docs-template-signature .cv-docs-page-boundaries { display: none; }
  .cv-docs-template-signature .cv-docs-prosemirror > [data-cv-page-start] { border-top: 0 !important; }
}
@font-face { font-family: "EB Garamond"; src: url("/fonts/eb-garamond/EBGaramond.ttf") format("truetype"); font-style: normal; font-weight: 400 800; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("/fonts/eb-garamond/EBGaramond-Italic.ttf") format("truetype"); font-style: italic; font-weight: 400 800; font-display: swap; }

.cv-email-backdrop {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 19, 24, .62);
  backdrop-filter: blur(4px);
}
.cv-email-dialog {
  position: relative;
  width: min(100%, 500px);
  padding: 38px;
  background: #fffdf7;
  border: 2px solid #111318;
  box-shadow: 9px 9px 0 #111318;
}
.cv-email-dialog h2 { margin: 12px 0 10px; color: #111318; font-size: clamp(25px, 4vw, 34px); line-height: 1.08; }
.cv-email-dialog p { margin: 0 0 22px; color: #555a63; font-size: 15px; line-height: 1.6; }
.cv-email-dialog form { display: grid; gap: 13px; }
.cv-email-dialog label { color: #111318; font-size: 13px; font-weight: 800; }
.cv-email-dialog input { width: 100%; min-height: 50px; padding: 0 14px; color: #111318; background: #fff; border: 1.5px solid #777b83; border-radius: 0; font: inherit; }
.cv-email-dialog input:focus { outline: 3px solid rgba(36, 71, 255, .2); border-color: #2447ff; }
.cv-email-close { position: absolute; top: 13px; right: 13px; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; color: #111318; background: transparent; border: 0; cursor: pointer; }
.cv-email-icon,
.cv-email-success > span { display: grid; width: 48px; height: 48px; place-items: center; color: #111318; background: #d9ff63; border: 1.5px solid #111318; }
.cv-email-primary { min-height: 50px; padding: 0 18px; color: #fff; background: #2447ff; border: 1.5px solid #111318; box-shadow: 4px 4px 0 #111318; font: inherit; font-weight: 800; cursor: pointer; }
.cv-email-primary:disabled { cursor: wait; opacity: .65; }
.cv-email-dialog small { color: #666b74; font-size: 12px; line-height: 1.5; }
.cv-email-dialog .cv-email-error { margin: 2px 0 0; color: #a12618; font-size: 13px; }
.cv-email-success { display: grid; gap: 13px; }
.cv-email-success p { margin: 0; }
.cv-email-success .cv-email-address { padding: 12px 14px; color: #111318; background: #f2efe5; border-left: 4px solid #2447ff; overflow-wrap: anywhere; }
.cv-email-success .cv-email-primary { margin-top: 8px; }
.cv-docs-menu button.is-premium { color: #656a73; }
.cv-account-notice { margin: 0 0 24px; padding: 14px 17px; color: #17380e; background: #eaffb7; border: 1px solid #91b53f; font-weight: 700; }
.cv-account-notice.is-error { color: #7b1c12; background: #fff0ec; border-color: #d97a6d; }

@media (max-width: 560px) {
  .cv-email-backdrop { padding: 12px; }
  .cv-email-dialog { padding: 32px 22px 25px; box-shadow: 5px 5px 0 #111318; }
}
