/* CSS is how you can add style to your website, such as colors, fonts, and positioning of your
   HTML content. To learn how to do something, just try searching Google for questions like
   "how to change link color." */

body {
  background-color: white;
  color: black;
  font-family: Verdana;
}

/* Cartoonish passport wrapper */
.passport-wrap {
  width: 600px;
  padding: 0;
}

/* Main passport card - simple and clean */
.passport-card {
  position: relative;
  border: 3px solid #39c5bb;
  font-family: 'Courier New', monospace;
  background-color: #e6f9f8;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(57, 197, 187, 0.3);
}

/* Vibrant header */
.passport-header {
  background: linear-gradient(180deg, #4dd4c9, #2a9d96);
  color: white;
  text-align: center;
  padding: 12px;
  font-size: 12px;
  font-weight: bold;
}
.passport-header .country {
  display: block;
  font-size: 12px;
  margin-bottom: 4px;
}

/* Info row */
.passport-type-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 12px;
  font-size: 10px;
  color: #2a9d96;
  background: #f0fffe;
}

/* Main content area */
.passport-body {
  display: flex;
  padding: 15px;
  gap: 15px;
}
.passport-body-tall {
  align-items: flex-start;
}
.passport-text-col {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

/* Photo box */
.passport-photo {
  width: 150px;
  aspect-ratio: 3 / 4;
  padding: 3px;
  border: 2px solid #e6007a;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  align-self: flex-start;
  background: white;
  box-sizing: border-box;
}
.passport-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 2px solid #39c5bb;
  border-radius: 6px;
  box-sizing: border-box;
  display: block;
}

/* Text fields */
.passport-fields {
  font-size: 12px;
  line-height: 1.8;
}
.passport-fields .label {
  color: #2a9d96;
  font-weight: bold;
  font-size: 9px;
  display: block;
}
.passport-type-row .label,
.passport-foot .label {
  color: inherit;
  font-weight: bold;
  font-size: inherit;
  display: inline;
}
.passport-fields .value {
  display: block;
  margin-bottom: 5px;
  color: #333;
}
.passport-fields .row {
  display: flex;
  gap: 30px;
  margin-bottom: 5px;
}
.passport-fields .row .label,
.passport-fields .row .value {
  margin-bottom: 0;
}

/* Censored text */
.passport-fields .value .censored,
.passport-extra .value .censored,
.mrz .censored {
  background: #000;
  color: transparent;
  padding: 2px 4px;
  border-radius: 2px;
  user-select: none;
}

/* Extra details (now nested in text column, holds the seal) */
.passport-extra {
  position: relative;
  min-height: 36px;
}

/* Seal stamp */
.seal {
  position: absolute;
  right: 14px;
  bottom: 10px;
  width: 54px;
  height: 54px;
  opacity: 0.4;
}

/* Footer info */
.passport-foot {
  display: flex;
  justify-content: space-between;
  padding: 8px 15px;
  font-size: 9px;
  color: #666;
  border-top: 2px solid #e6007a;
}

/* Bottom barcode section */
.mrz {
  background: linear-gradient(180deg, #2a9d96, #1e7770);
  color: white;
  padding: 10px 15px;
  font-size: 12px;
  line-height: 1.6;
  font-family: 'Courier New', monospace;
  white-space: pre;
  overflow-x: hidden;
  word-break: break-all;
}