/* Local Cairo fonts: shared by the interface, resume preview and PDF export. */
@font-face {
  font-family: "Cairo";
  src: url("/fonts/Cairo-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Cairo";
  src: url("/fonts/Cairo-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Cairo";
  src: url("/fonts/Cairo-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --font-family: "Cairo", Tahoma, Arial, sans-serif;
  --muted: #625b72;
}
body {
  font-family: var(--font-family);
  font-size: 16px;
  line-height: 1.85;
}
button, input, textarea, select, .button {
  font-family: var(--font-family);
  line-height: 1.65;
}
button, .button { font-weight: 600; }
input, textarea, select { font-weight: 400; }
input::placeholder, textarea::placeholder { color: #756e82; opacity: 1; }
h1, h2, h3, strong, b { font-weight: 700; }
h1, h2, h3 { line-height: 1.6; }
.intro h1 { font-size: 32px; }
.intro p { font-size: 16px; }
.brand { font-size: 27px; line-height: 1.5; }
.brand span { font-size: 12px; line-height: 1.7; margin-top: 3px; }
.header-actions button, .free, .eyebrow { font-size: 14px; }
.eyebrow { font-weight: 700; }
.editor-top { gap: 12px; flex-wrap: wrap; }
.editor-top strong { font-size: 17px; }
.editor-top span, .preview-top small { font-size: 12px; }
#tabs button { font-size: 14px; line-height: 1.7; }
.hint { font-size: 14px; line-height: 1.9; }
.field > span { font-size: 14px; font-weight: 600; }
.field small { font-size: 13px; line-height: 1.8; margin-top: 5px; }
.field small:empty { display: none; }
.field-actions button, .entry-head button { font-size: 13px; }
.entry-head { gap: 12px; }
.field textarea, dialog textarea { line-height: 1.85; }
.text-link, #step-progress, .preview-top { font-size: 14px; }
.preview-top { flex-wrap: wrap; }
.preview-top small { margin-top: 3px; }
.preview-top select { width: 120px; }
.preview-note { font-size: 12px; line-height: 1.9; }
.ai-start p { font-size: 15px; line-height: 1.9; }
.review p, .review li { font-size: 14px; line-height: 1.9; }
footer, footer button, footer a { font-size: 13px; line-height: 1.9; }
dialog p, dialog li, .consent, .ai-missing, #analytics-consent p {
  font-size: 14px;
  line-height: 1.9;
}
#toast { font-size: 14px; }
.about-note { font-size: 14px; }
.about-steps p, .about-privacy p { font-size: 16px; }
.admin-record .record-meta, .admin-title span { font-size: 14px; }

.paper { font-family: var(--font-family); line-height: 1.85; }
.paper h1 { font-size: 30px; line-height: 1.5; }
.paper .role { font-size: 16px; }
.paper h3 { font-size: 16px; line-height: 1.8; }
.paper p { font-size: 14px; line-height: 1.85; }
.paper .contact, .paper .cv-entry small { font-size: 12px; line-height: 1.85; }
.paper .cv-entry strong { font-size: 14px; line-height: 1.85; }
.paper .empty { color: #797183; }

@media (max-width: 760px) {
  body { font-size: 15px; }
  .brand { font-size: 23px; }
  .brand span { font-size: 10px; }
  .header-actions button { font-size: 13px; padding-inline: 10px; }
  .intro { flex-wrap: wrap; }
  .intro h1 { font-size: 26px; }
  .intro p { font-size: 15px; line-height: 1.9; }
  .intro button { font-size: 14px; padding-inline: 14px; }
  .eyebrow { font-size: 13px; }
  .ai-start h2 { font-size: 22px; }
  .ai-start p { font-size: 14px; }
  .mobile-switch button { font-size: 15px; }
  .editor-top strong { font-size: 16px; }
  .editor-top span { font-size: 12px; }
  #tabs button { font-size: 13px; padding-inline: 3px; }
  .field > span { font-size: 14px; }
  .field-actions button, .entry-head button { font-size: 13px; }
  .preview-top { font-size: 13px; }
  .preview-top small { font-size: 12px; }
  .preview-note { font-size: 12px; }
  .paper h1 { font-size: 26px; }
  .paper .role { font-size: 15px; }
  .paper h3 { font-size: 15px; }
  .paper p, .paper .cv-entry strong { font-size: 13px; }
  .paper .cv-entry small, .paper .contact { font-size: 12px; }
  .about-hero h1 { font-size: 34px; }
  .about-hero p { font-size: 16px; }
  #analytics-consent p, #toast { font-size: 14px; }
}

@media (max-width: 380px) {
  .brand { font-size: 21px; gap: 6px; }
  .brand img { width: 32px; height: 32px; }
  .brand span { display: none; }
  .header-actions button { font-size: 12px; padding-inline: 8px; }
  .intro h1 { font-size: 24px; }
}

@media print {
  .paper { font-family: var(--font-family); }
  .paper h1 { font-size: 22pt; }
  .paper .role, .paper h3 { font-size: 11.5pt; }
  .paper p, .paper .cv-entry strong { font-size: 10.5pt; }
  .paper .contact, .paper .cv-entry small { font-size: 9pt; }
}
