:root{--blue:#0878B9;--blue2:#17A9E5;--navy:#082F5B;--ink:#183047;--muted:#6C7C8D;--line:#D9E4ED;--bg:#F5F8FB;--green:#07824f;--red:#b42525;--gold:#E99A32}
*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0}a{color:#0878B9;text-decoration:none}button,input,textarea{font:inherit}
.backend-body{background:linear-gradient(180deg,#f6fbff,#edf5fb);min-height:100vh}.admin-topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 32px;position:sticky;top:0;z-index:20}.admin-brand{display:flex;align-items:center;gap:10px;color:var(--navy);margin-right:auto}.admin-brand>span:last-child{display:flex;flex-direction:column}.admin-brand small{color:var(--muted);font-size:11px}.shield-mark{width:38px;height:42px;border:2px solid var(--blue);border-radius:14px 14px 18px 18px;display:inline-grid;place-items:center;color:var(--blue);font-weight:900}.admin-journal{font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:center}.admin-journal strong{background:#fff0d4;color:#8a5700;padding:6px 9px;border-radius:8px}.link-button{border:0;background:transparent;color:#0878B9;cursor:pointer}.admin-nav{background:#fff;border-bottom:1px solid var(--line);padding:10px 32px;display:flex;gap:20px;font-size:13px}.admin-container{max-width:1280px;margin:0 auto;padding:28px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-title h1{margin:0;color:var(--navy);font-size:28px}.page-title p{margin:5px 0 0;color:var(--muted);font-size:13px}
.primary,.secondary,.warning{display:inline-flex;border:0;border-radius:9px;padding:11px 15px;font-weight:700;cursor:pointer;text-decoration:none}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;border:1px solid #bad5ef;color:#174e89}.warning{background:#c98400;color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 10px 26px rgba(34,76,115,.08)}.stat-card{padding:20px}.stat-card small{display:block;color:var(--muted);font-weight:600}.stat-card strong{font-size:32px;color:var(--navy);display:block;margin-top:7px}.panel{padding:22px}.panel h2{margin-top:0;color:var(--navy);font-size:18px}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-head span{color:var(--muted);font-size:13px}
.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:12px 10px;border-bottom:1px solid #edf2f6;text-align:left;vertical-align:top}th{color:#5f728e;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.title-cell{min-width:280px}.muted{color:var(--muted)}
.badge{display:inline-block;padding:5px 8px;border-radius:7px;background:#eef2f6;color:#4e617b;font-size:10px;font-weight:800;margin:2px}.badge.blue{background:#e9f3ff;color:#0968cf}.badge.green{background:#e7f8f0;color:#08784b}
.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{font-size:12px;font-weight:700}.form-grid input,.form-grid textarea{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #cbddec;border-radius:9px;background:#fff}.form-grid input:disabled{background:#f4f7fa;color:#65758c}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:15px;align-items:center;margin-top:20px}
.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}dl{display:grid;grid-template-columns:180px 1fr;gap:11px 18px;margin:0}dt{color:var(--muted);font-size:12px}dd{margin:0;font-size:13px;line-height:1.5}.simulation-box{margin-top:20px;background:#fff8e9;border:1px solid #efd39a;padding:15px;border-radius:10px}.simulation-box p{font-size:12px;color:#725a2d}.loa-ready{margin-top:20px;border:1px solid #b8e2cd;background:#edfff6;border-radius:10px;padding:15px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.loa-ready strong{color:var(--green)}.loa-ready .primary{margin-left:auto}
.flash{padding:13px 15px;border-radius:9px;margin-bottom:18px;font-size:13px}.flash.success{background:#ebfff5;border:1px solid #b7e7ce;color:#0b7148}.flash.error{background:#fff0f0;border:1px solid #efc0c0;color:#962525}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 70% 20%,#d8eeff,transparent 35%),linear-gradient(180deg,#f8fbff,#edf6fd);padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 45px rgba(30,74,120,.12)}.login-logo{display:flex;align-items:center;gap:12px}.login-logo>div{display:flex;flex-direction:column}.login-logo small{color:var(--muted);font-size:11px}.login-card h1{margin:24px 0 4px;color:var(--navy)}.login-card>p{color:var(--muted);font-size:13px}.login-card label{display:block;font-size:12px;font-weight:700;margin-top:14px}.login-card input{display:block;width:100%;padding:11px;border:1px solid #cbddec;border-radius:9px;margin-top:6px}.login-card .primary{width:100%;justify-content:center;margin-top:18px}.login-foot{margin-top:18px;font-size:12px}
.invoice-brand img{max-width:320px;max-height:100px;object-fit:contain;margin-bottom:24px}
.loa-sheet{width:min(100%,794px);max-width:794px;margin:0 auto;background:#fff;border:1px solid #cddce9;box-shadow:0 14px 38px rgba(25,68,110,.1);min-height:1123px;padding:44px 50px 38px;position:relative;overflow:hidden}.loa-head{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:2px solid #0878B9;padding-bottom:16px}.loa-head img{width:265px;max-height:86px;object-fit:contain}.loa-head>div{text-align:right}.loa-head b{display:block;font-size:22px;color:var(--navy);letter-spacing:.01em}.loa-head span{color:var(--muted);font-size:13px}.loa-body{text-align:center;padding-top:34px}.loa-statement>p{color:var(--muted);margin:8px 0;font-size:13px;line-height:1.5}.loa-body h2{font-size:21px;line-height:1.3;color:var(--navy);margin:10px auto 12px;max-width:640px}.corresponding-author{color:var(--navy);font-weight:700}.journal-name{font-size:16px;line-height:1.4;margin:8px auto 5px;color:#064A7C;max-width:620px}.review-note{font-size:11px!important;color:#72839a!important;margin-top:7px!important}.record-heading,.verification-heading{display:flex;align-items:center;gap:10px;text-align:left;color:var(--navy);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.record-heading{margin:30px 0 10px}.verification-heading{margin:18px 0 8px}.record-heading:after,.verification-heading:after{content:"";height:1px;background:#d9e5ef;flex:1}.loa-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:0}.loa-meta div{border:1px solid #d9e5ef;border-radius:8px;padding:10px 12px;background:#fbfdff}.loa-meta small{display:block;color:var(--muted);margin-bottom:4px;font-size:9px}.loa-meta b{font-size:11px;line-height:1.35;color:var(--navy)}.verification-intro{text-align:left;color:#647693;font-size:9.5px;line-height:1.5;margin:0 0 10px}.verification-block{display:grid;grid-template-columns:1fr 132px;gap:18px;text-align:left;border:1px solid #d9e5ef;border-radius:9px;padding:12px 14px;background:#fbfdff;align-items:center}.verification-block small{color:var(--muted);display:block;font-size:9px}.verification-block code{display:block;margin:4px 0 8px;font-size:11px;font-weight:700}.verification-token{font-size:13px!important;color:var(--navy)}.verify-url-label{font-size:9px!important;color:var(--muted)!important;margin:5px 0 2px!important}.verify-url{font-size:8.5px;line-height:1.35;word-break:break-all;display:block}.hash-label{margin-top:9px}.hash{font-size:7.5px!important;line-height:1.35;word-break:break-all}.qr-box{width:124px;height:124px;display:grid;place-items:center;border:1px solid #d8e6f3;padding:4px;background:#fff}.qr-box img,.qr-box canvas{max-width:114px!important;max-height:114px!important;width:114px!important;height:114px!important}.loa-foot{position:absolute;left:50px;right:50px;bottom:30px;border-top:1px solid #d9e5ef;padding-top:10px;display:flex;justify-content:space-between;gap:18px;font-size:8.5px;color:var(--muted)}.loa-foot span:last-child{text-align:right}.technical-note{max-width:794px;margin:16px auto;background:#f3f8fd;border:1px solid #d4e5f4;border-radius:9px;padding:12px;font-size:11px;color:#536984}
.verify-body{background:linear-gradient(180deg,#f7fbff,#eef6fc);min-height:100vh}.verify-top{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:var(--muted);font-size:12px}.verify-top a{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:18px}.verify-container{max-width:900px;margin:38px auto;padding:0 18px}.verify-hero{text-align:center}.verify-hero img{max-width:360px;max-height:110px;object-fit:contain}.verify-hero h1{color:var(--navy);margin-bottom:8px}.verify-hero p{color:var(--muted)}.verify-form{display:grid;grid-template-columns:1fr 140px;gap:10px;max-width:680px;margin:22px auto}.verify-form input{padding:13px;border:1px solid #bfd5e9;border-radius:9px}.verify-result{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 12px 32px rgba(34,76,115,.08)}.verify-result.valid{border-top:5px solid var(--green)}.verify-result.invalid{border-top:5px solid var(--red)}.result-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:900;background:#edf3f8;color:var(--navy)}.valid .result-icon{background:#e9fff4;color:var(--green)}.invalid .result-icon{background:#fff0f0;color:var(--red)}.verify-result h2{margin-bottom:5px}.verify-result>p{color:var(--muted)}.verify-result dl{margin-top:25px}.privacy-note{font-size:11px;color:var(--muted);text-align:center;margin:18px}
@media(max-width:800px){.admin-topbar{padding:0 15px}.admin-journal{display:none}.admin-nav{padding:10px 15px;overflow:auto}.admin-container{padding:18px}.stat-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.page-title{align-items:flex-start;flex-direction:column}.verify-form{grid-template-columns:1fr}.loa-sheet{width:100%;min-height:1000px;padding:30px 24px}.loa-head{flex-direction:column;gap:12px}.loa-head>div{text-align:center}.loa-head img{width:245px}.loa-meta{grid-template-columns:1fr 1fr}.verification-block{grid-template-columns:1fr 118px}.qr-box{width:110px;height:110px}.qr-box img,.qr-box canvas{width:100px!important;height:100px!important}.loa-foot{left:24px;right:24px}.panel dl,.verify-result dl{grid-template-columns:1fr}.stat-card strong{font-size:25px}}
@page{size:A4 portrait;margin:10mm}@media print{html,body{width:auto!important;height:auto!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.admin-topbar,.admin-nav,.no-print,.flash{display:none!important}.admin-container{padding:0!important;margin:0!important;max-width:none!important}.loa-sheet{width:190mm!important;max-width:190mm!important;height:277mm!important;min-height:277mm!important;margin:0!important;padding:10mm 11mm 9mm!important;border:0!important;box-shadow:none!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important}.loa-head{gap:8mm;padding-bottom:4mm}.loa-head img{width:68mm;max-height:22mm}.loa-head b{font-size:17pt}.loa-head span{font-size:9pt}.loa-body{padding-top:7mm}.loa-statement>p{font-size:9.5pt;line-height:1.4;margin:2mm 0}.loa-body h2{font-size:15pt;line-height:1.25;margin:2.2mm auto 2.5mm}.journal-name{font-size:11.5pt;margin:1.5mm auto 1mm}.review-note{font-size:8pt!important}.record-heading{margin:6mm 0 2.2mm}.verification-heading{margin:4mm 0 1.8mm}.loa-meta{gap:2mm}.loa-meta div{padding:2.2mm 3mm}.loa-meta small{font-size:6.8pt}.loa-meta b{font-size:8.5pt}.verification-intro{font-size:7pt;margin-bottom:2mm}.verification-block{grid-template-columns:1fr 31mm;gap:4mm;padding:2.5mm 3mm}.verification-block small{font-size:6.5pt}.verification-token{font-size:9.5pt!important}.verify-url-label{font-size:6.5pt!important}.verify-url{font-size:6.2pt}.hash{font-size:5.4pt!important}.qr-box{width:29mm;height:29mm;padding:1mm}.qr-box img,.qr-box canvas{width:27mm!important;height:27mm!important;max-width:27mm!important;max-height:27mm!important}.loa-foot{left:11mm;right:11mm;bottom:7mm;padding-top:2.5mm;font-size:6.5pt}.invoice-sheet{box-shadow:none;border:0}.technical-note{display:none!important}}


/* v1.1.0 — Multiple authors input */
.authors-fieldset{
  border:1px solid #d7e5f1;
  border-radius:12px;
  padding:16px;
  background:#fbfdff;
}
.authors-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.authors-heading>div{display:flex;flex-direction:column;gap:3px}
.authors-heading strong{font-size:13px;color:var(--navy)}
.authors-heading small{font-size:10px;color:var(--muted);font-weight:500}
.author-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 178px 74px;
  gap:10px;
  align-items:end;
  padding:10px 0;
  border-top:1px solid #edf2f6;
}
.author-row:first-child{border-top:0}
.author-order{
  width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;
  background:#e9f3ff;color:#0968cf;
  font-size:11px;font-weight:800;
  align-self:center;
}
.author-name-label{font-size:11px!important}
.corresponding-choice{
  min-height:41px;
  display:flex!important;
  align-items:center;
  gap:7px;
  padding:0 8px;
  border:1px solid #d6e3ee;
  border-radius:9px;
  background:#fff;
  color:#435875;
  font-size:10px!important;
}
.corresponding-choice input{
  width:auto!important;
  margin:0!important;
}
.remove-author{
  min-height:41px;
  border:1px solid #e5c8c8;
  color:#9a3535;
  background:#fff;
  border-radius:9px;
  cursor:pointer;
}
.remove-author:disabled{opacity:.4;cursor:not-allowed}
.salutation-field{
  display:block;
  margin-top:14px;
  font-size:11px!important;
}
.salutation-field>span{font-weight:500;color:var(--muted)}
.salutation-field small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:9.5px;
  font-weight:500;
  line-height:1.45;
}
.authors-view-list{margin:0;padding-left:18px}
.authors-view-list li{margin:4px 0;line-height:1.5}

/* v1.1.0 — Formal letter-style LOA */
.loa-letter{
  width:min(100%,794px);
  max-width:794px;
  min-height:1123px;
  padding:38px 48px 34px;
}
.loa-letter .loa-head{
  padding-bottom:13px;
}
.loa-letter .loa-head img{
  width:235px;
  max-height:75px;
}
.loa-letter .loa-head b{
  font-size:20px;
}
.loa-letter .loa-head span{
  display:block;
  margin-top:4px;
  font-size:9px;
  color:var(--muted);
}
.loa-letter-body{
  text-align:left;
  padding-top:22px;
  padding-bottom:170px;
}
.loa-letter-body>p{
  margin:0 0 10px;
  color:#334761;
  font-size:11.4px;
  line-height:1.55;
  text-align:justify;
}
.letter-salutation{
  text-align:left!important;
  color:var(--navy)!important;
  margin-bottom:11px!important;
}
.letter-section-title{
  margin:14px 0 7px;
  font-size:10px;
  font-weight:800;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:.075em;
  display:flex;
  align-items:center;
  gap:10px;
}
.letter-section-title:after{
  content:"";
  height:1px;
  background:#d8e5ef;
  flex:1;
}
.manuscript-summary{
  display:grid;
  grid-template-columns:1fr;
  border:1px solid #d8e5ef;
  border-radius:8px;
  overflow:hidden;
}
.manuscript-summary>div{
  display:grid;
  grid-template-columns:125px 1fr;
  gap:10px;
  padding:6px 9px;
  border-top:1px solid #e8eef4;
  background:#fbfdff;
}
.manuscript-summary>div:first-child{border-top:0}
.manuscript-summary span{
  color:var(--muted);
  font-size:8px;
  font-weight:700;
}
.manuscript-summary strong{
  color:var(--navy);
  font-size:8.6px;
  line-height:1.38;
  font-weight:650;
}
.summary-authors strong{line-height:1.45}
.next-steps-title{margin-top:13px}
.loa-next-steps{
  margin:0;
  padding-left:18px;
  color:#334761;
  font-size:9.2px;
  line-height:1.45;
}
.loa-next-steps li{margin:0 0 5px;padding-left:2px}
.letter-thanks{
  margin-top:10px!important;
}
.signature-block{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-top:12px;
  color:#334761;
  font-size:10px;
}
.signature-block strong{
  color:var(--navy);
  font-size:11px;
}
.letter-verification{
  position:absolute;
  left:48px;
  right:48px;
  bottom:52px;
  display:grid;
  grid-template-columns:1fr 100px;
  gap:14px;
  align-items:end;
  padding-top:10px;
  border-top:1px solid #d8e5ef;
}
.letter-verification-copy{
  min-width:0;
}
.verification-line{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:7px;
}
.verification-line>div{
  display:flex;
  gap:7px;
  align-items:baseline;
}
.verification-line span,.verification-label{
  color:var(--muted);
  font-size:7px;
}
.verification-line strong{
  color:var(--navy);
  font-size:8px;
}
.letter-verification .verification-token{
  display:block;
  margin:2px 0 3px;
  color:var(--navy);
  font-size:9.5px!important;
}
.letter-verification .verify-url{
  display:block;
  font-size:6.5px;
  line-height:1.3;
  word-break:break-all;
}
.letter-verification .hash-label{
  display:block;
  margin-top:5px;
}
.letter-verification .hash{
  display:block;
  margin-top:2px;
  font-size:5.7px!important;
  line-height:1.25;
  word-break:break-all;
}
.loa-letter .qr-box{
  width:92px;
  height:92px;
  padding:4px;
  justify-self:end;
}
.loa-letter .qr-box img,.loa-letter .qr-box canvas{
  width:82px!important;
  height:82px!important;
  max-width:82px!important;
  max-height:82px!important;
}
.loa-letter .loa-foot{
  left:48px;
  right:48px;
  bottom:26px;
  font-size:7.5px;
}
.loa-many-authors .summary-authors strong{font-size:7.6px;line-height:1.32}
.loa-many-authors .loa-letter-body>p{font-size:10.7px}
.loa-many-authors .loa-next-steps{font-size:8.7px}
.loa-long-title .manuscript-summary strong{font-size:8px}
.loa-long-title .loa-letter-body>p{font-size:10.8px}

/* mobile author form */
@media(max-width:800px){
  .author-row{
    grid-template-columns:34px 1fr;
  }
  .author-name-label{grid-column:2}
  .corresponding-choice{grid-column:2}
  .remove-author{grid-column:2;width:max-content}
  .authors-heading{align-items:flex-start}
  .loa-letter-body{padding-bottom:175px}
  .letter-verification{left:24px;right:24px}
  .loa-letter .loa-foot{left:24px;right:24px}
}

/* v1.1.0 print profile — A4 portrait, one-page target */
@page{size:A4 portrait;margin:10mm}
@media print{
  .loa-letter{
    width:190mm!important;
    max-width:190mm!important;
    height:277mm!important;
    min-height:277mm!important;
    margin:0!important;
    padding:8.5mm 10mm 8mm!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .loa-letter .loa-head{
    gap:7mm!important;
    padding-bottom:3mm!important;
  }
  .loa-letter .loa-head img{
    width:57mm!important;
    max-height:18mm!important;
  }
  .loa-letter .loa-head b{font-size:14.5pt!important}
  .loa-letter .loa-head span{font-size:6.5pt!important;margin-top:1mm!important}
  .loa-letter-body{
    padding-top:4.5mm!important;
    padding-bottom:44mm!important;
  }
  .loa-letter-body>p{
    margin:0 0 2.2mm!important;
    font-size:8.2pt!important;
    line-height:1.43!important;
  }
  .letter-salutation{margin-bottom:2.4mm!important}
  .letter-section-title{
    margin:3mm 0 1.5mm!important;
    font-size:7pt!important;
  }
  .manuscript-summary>div{
    grid-template-columns:31mm 1fr!important;
    gap:2mm!important;
    padding:1.35mm 2mm!important;
  }
  .manuscript-summary span{font-size:5.8pt!important}
  .manuscript-summary strong{font-size:6.4pt!important;line-height:1.3!important}
  .next-steps-title{margin-top:2.6mm!important}
  .loa-next-steps{
    padding-left:5mm!important;
    font-size:6.8pt!important;
    line-height:1.34!important;
  }
  .loa-next-steps li{margin-bottom:1.1mm!important}
  .letter-thanks{margin-top:2mm!important}
  .signature-block{
    margin-top:2.2mm!important;
    gap:.7mm!important;
    font-size:7pt!important;
  }
  .signature-block strong{font-size:7.8pt!important}
  .letter-verification{
    left:10mm!important;
    right:10mm!important;
    bottom:12.5mm!important;
    grid-template-columns:1fr 25mm!important;
    gap:3mm!important;
    padding-top:2.2mm!important;
  }
  .verification-line{
    gap:2mm!important;
    margin-bottom:1.2mm!important;
  }
  .verification-line span,.verification-label{font-size:5pt!important}
  .verification-line strong{font-size:5.8pt!important}
  .letter-verification .verification-token{
    margin:.5mm 0 .6mm!important;
    font-size:7.2pt!important;
  }
  .letter-verification .verify-url{font-size:4.7pt!important}
  .letter-verification .hash-label{margin-top:1mm!important}
  .letter-verification .hash{font-size:4.2pt!important;line-height:1.15!important}
  .loa-letter .qr-box{
    width:24mm!important;
    height:24mm!important;
    padding:.8mm!important;
  }
  .loa-letter .qr-box img,.loa-letter .qr-box canvas{
    width:22mm!important;
    height:22mm!important;
    max-width:22mm!important;
    max-height:22mm!important;
  }
  .loa-letter .loa-foot{
    left:10mm!important;
    right:10mm!important;
    bottom:6.5mm!important;
    padding-top:1.6mm!important;
    font-size:5pt!important;
  }
  .loa-many-authors .summary-authors strong{font-size:5.5pt!important;line-height:1.2!important}
  .loa-many-authors .loa-letter-body>p{font-size:7.7pt!important}
  .loa-many-authors .loa-next-steps{font-size:6.3pt!important}
  .loa-long-title .manuscript-summary strong{font-size:5.9pt!important}
}


/* ========================================================================
   AJLM LOA FINAL DESIGN LOCK — v1.2.0
   Approved final layout. The verification panel and QR block are protected.
   ======================================================================== */

.loa-final{
  --loa-navy:#06193b;
  --loa-blue:#075d82;
  --loa-teal:#0b7891;
  --loa-line:#b9d2e4;
  --loa-soft:#f9fcfe;
  width:min(100%,794px);
  max-width:794px;
  height:1123px;
  min-height:1123px;
  margin:0 auto;
  padding:28px 46px 0;
  background:#fff;
  border:1px solid #c9d7e4;
  box-shadow:0 14px 38px rgba(25,68,110,.10);
  position:relative;
  overflow:hidden;
  color:var(--loa-navy);
}
.loa-final:after{
  content:"";
  position:absolute;
  top:245px;
  right:-35px;
  width:265px;
  height:250px;
  opacity:.11;
  pointer-events:none;
  background:
    radial-gradient(circle, #3e9fc0 1.15px, transparent 1.3px) 0 0/10px 10px;
  -webkit-mask-image:linear-gradient(135deg,transparent 0%,#000 30%,#000 80%,transparent 100%);
  mask-image:linear-gradient(135deg,transparent 0%,#000 30%,#000 80%,transparent 100%);
}
.loa-final>*{position:relative;z-index:2}

.loa-ribbon{
  position:absolute;
  z-index:4;
  top:0;
  right:34px;
  width:52px;
  height:82px;
  background:linear-gradient(180deg,#006b8b 0%,#006681 72%,#004b6c 72%);
  clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);
  display:grid;
  place-items:start center;
  padding-top:20px;
}
.loa-ribbon span{
  width:30px;
  height:30px;
  border:3px solid #fff;
  border-radius:50%;
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:18px;
  line-height:1;
}

.loa-final-head{
  height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-right:64px;
}
.loa-final-head img{
  width:260px;
  height:auto;
  max-height:82px;
  object-fit:contain;
  object-position:left center;
}
.loa-final-title{
  text-align:right;
  color:var(--loa-navy);
  line-height:1.05;
  letter-spacing:.01em;
}
.loa-final-title strong{
  display:block;
  font-size:24px;
  font-weight:850;
  white-space:nowrap;
}
.loa-final-title span{
  display:block;
  margin-top:5px;
  font-size:17px;
  font-weight:850;
  color:#06628a;
}
.loa-final-rule{
  position:relative;
  height:3px;
  margin:1px 0 24px;
  background:linear-gradient(90deg,#086b8b 0 82%,#4966c8 82% 94%,transparent 94%);
}
.loa-final-rule span{
  position:absolute;
  right:14%;
  top:0;
  width:58px;
  height:3px;
  background:#213f81;
}

.loa-final-main{
  padding:0 22px 445px;
}
.loa-final-main p{
  margin:0;
}
.loa-final-salutation{
  font-size:13.5px;
  line-height:1.45;
  margin-bottom:13px!important;
}
.loa-final-intro{
  color:#172a4d;
  font-size:12.4px;
  line-height:1.55;
  margin-bottom:12px!important;
  text-align:left;
}
.loa-final-intro strong{
  color:#075f85;
  font-weight:800;
}
.loa-final-review{
  margin-top:2px!important;
  margin-bottom:17px!important;
  color:#182b4c;
}

.loa-summary-heading{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 5px;
  color:#08627f;
}
.heading-doc-icon{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  color:#08627f;
}
.heading-doc-icon svg{
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.loa-summary-heading strong{
  font-size:14.5px;
  letter-spacing:.015em;
  font-weight:850;
}

.loa-summary-table{
  border:1px solid var(--loa-line);
  border-radius:6px;
  overflow:hidden;
  background:rgba(255,255,255,.92);
}
.loa-summary-row{
  min-height:34px;
  display:grid;
  grid-template-columns:38px 155px 1fr;
  align-items:center;
  border-top:1px solid #d1e0eb;
}
.loa-summary-row:first-child{border-top:0}
.summary-icon{
  display:grid;
  place-items:center;
  color:#08627f;
}
.summary-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.summary-label{
  height:100%;
  display:flex;
  align-items:center;
  padding:7px 10px;
  border-right:1px solid #c6d8e6;
  color:#12213e;
  font-size:10.4px;
  font-weight:800;
}
.summary-value{
  padding:7px 14px;
  color:#142548;
  font-size:10.4px;
  line-height:1.45;
  min-width:0;
  overflow-wrap:anywhere;
}
.summary-blue{color:#075f85}
.summary-blue strong{font-weight:800}
.loa-summary-title-row,
.loa-summary-authors-row{align-items:stretch}
.loa-summary-title-row .summary-icon,
.loa-summary-authors-row .summary-icon{padding-top:8px;align-items:flex-start}
.loa-summary-title-row .summary-label,
.loa-summary-authors-row .summary-label{align-items:flex-start;padding-top:9px}
.loa-author-list{line-height:1.5}
.loa-author-list .loa-corresponding-author{font-weight:850;color:#0a1736}
.loa-corresponding-note{
  margin-top:7px;
  font-size:9.2px;
  font-style:italic;
  color:#13274a;
}

.loa-closing-block{
  position:absolute;
  z-index:3;
  left:68px;
  right:56px;
  bottom:294px;
  height:152px;
  display:grid;
  grid-template-columns:1fr 235px;
  gap:30px;
  align-items:start;
}
.loa-signoff{
  color:#14264a;
  font-size:10.5px;
  line-height:1.45;
}
.loa-signoff p{margin:0}
.loa-sincerely{margin-top:15px!important}
.loa-signature-image{
  display:block;
  width:128px;
  height:52px;
  object-fit:contain;
  object-position:left center;
  margin:2px 0 2px -4px;
}
.loa-chief-editor{
  display:block;
  color:#075f85;
  font-size:11px;
  font-weight:850;
}
.loa-record-card{
  border:1px solid #bfd5e5;
  border-radius:8px;
  padding:7px 14px;
  background:rgba(251,253,255,.96);
}
.loa-record-row{
  display:grid;
  grid-template-columns:27px 1fr;
  gap:8px;
  align-items:center;
  padding:8px 0;
  border-top:1px solid #cbdce8;
}
.loa-record-row:first-child{border-top:0}
.record-icon{color:#091b42}
.record-icon svg{
  width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.loa-record-row small{
  display:block;
  color:#1d3153;
  font-size:8.5px;
  margin-bottom:2px;
}
.loa-record-row strong{
  display:block;
  color:#075f85;
  font-size:10.8px;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.loa-validation-panel{
  position:absolute;
  z-index:3;
  left:48px;
  right:48px;
  bottom:43px;
  height:242px;
  border:1.5px solid #0d6d91;
  border-radius:7px;
  display:grid;
  grid-template-columns:1fr 190px;
  gap:18px;
  padding:10px 11px 9px 14px;
  background:#fff;
  overflow:hidden;
}
.loa-validation-left{
  min-width:0;
}
.validation-title-row{
  display:grid;
  grid-template-columns:28px 1fr;
  gap:7px;
  color:#075f85;
  margin-bottom:8px;
}
.validation-shield{
  color:#086887;
  display:grid;
  place-items:start center;
}
.validation-shield svg{
  width:24px;height:24px;fill:#086887;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.validation-title-row strong{
  display:block;
  font-size:11.4px;
  letter-spacing:.01em;
  font-weight:850;
}
.validation-title-row p{
  margin:3px 0 0;
  color:#142649;
  font-size:8.2px;
  line-height:1.32;
}
.validation-details{
  height:165px;
  border:1px solid #cbdce8;
  border-radius:5px;
  overflow:hidden;
  display:grid;
  grid-template-rows:repeat(3,1fr);
}
.validation-detail-row{
  min-height:0;
  display:grid;
  grid-template-columns:28px 145px minmax(0,1fr);
  align-items:center;
  border-top:1px solid #d4e1eb;
  padding:5px 8px 5px 5px;
}
.validation-detail-row:first-child{border-top:0}
.validation-detail-icon{
  color:#0a7092;
  display:grid;
  place-items:center;
}
.validation-detail-icon svg{
  width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.validation-detail-label{
  color:#142649;
  font-size:8.8px;
  line-height:1.2;
}
.validation-token{
  color:#075f85;
  font-size:11.7px;
  font-weight:850;
  white-space:nowrap;
}
.validation-url{
  color:#06628a;
  font-size:7.5px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.validation-hash{
  color:#142649;
  font-size:6.7px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.loa-validation-qr{
  border:1px solid #b9d2e4;
  border-radius:6px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  background:#fff;
}
.loa-final-qr{
  width:166px!important;
  height:166px!important;
  border:0!important;
  padding:7px!important;
  margin:3px auto 0;
  background:#fff;
  display:grid!important;
  place-items:center!important;
}
.loa-final-qr img,.loa-final-qr canvas{
  width:152px!important;
  height:152px!important;
  max-width:152px!important;
  max-height:152px!important;
}
.qr-status{
  width:100%;
  height:34px;
  background:#065f7a;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:12px;
  font-weight:850;
}
.qr-status span{
  width:18px;height:18px;border:1.5px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:11px;
}
.qr-caption{
  flex:1;
  width:100%;
  padding:5px 4px 3px;
  background:#065f7a;
  color:#fff;
  text-align:center;
  font-size:8.4px;
  line-height:1.25;
}

.loa-final-footer{
  position:absolute;
  z-index:4;
  left:48px;
  right:48px;
  bottom:8px;
  height:31px;
  border-radius:4px 4px 0 0;
  background:linear-gradient(90deg,#075875,#004f6c);
  color:#fff;
  display:grid;
  grid-template-columns:30px 1fr auto;
  align-items:center;
  gap:8px;
  padding:4px 11px;
}
.footer-lock{
  display:grid;place-items:center;
}
.footer-lock svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.footer-copy{
  font-size:7.4px;
  line-height:1.25;
}
.footer-right{
  font-size:7.4px;
  line-height:1.25;
  text-align:right;
}

/* Adaptive body only. QR + validation panel intentionally remain unchanged. */
.loa-density-compact .loa-final-main{padding-left:19px;padding-right:19px}
.loa-density-compact .loa-final-salutation{font-size:12.9px;margin-bottom:10px!important}
.loa-density-compact .loa-final-intro{font-size:11.8px;line-height:1.48;margin-bottom:9px!important}
.loa-density-compact .loa-final-review{margin-bottom:12px!important}
.loa-density-compact .loa-summary-heading{margin-bottom:4px}
.loa-density-compact .summary-label,
.loa-density-compact .summary-value{font-size:9.8px}
.loa-density-compact .loa-summary-row{min-height:31px}
.loa-density-compact .summary-label,
.loa-density-compact .summary-value{padding-top:5px;padding-bottom:5px}
.loa-density-compact .loa-corresponding-note{margin-top:5px}

.loa-density-dense .loa-final-rule{margin-bottom:18px}
.loa-density-dense .loa-final-main{padding-left:17px;padding-right:17px}
.loa-density-dense .loa-final-salutation{font-size:12.1px;margin-bottom:8px!important}
.loa-density-dense .loa-final-intro{font-size:10.9px;line-height:1.42;margin-bottom:7px!important}
.loa-density-dense .loa-final-review{margin-bottom:9px!important}
.loa-density-dense .loa-summary-heading strong{font-size:13px}
.loa-density-dense .heading-doc-icon{width:27px;height:27px}.loa-density-dense .heading-doc-icon svg{width:23px;height:23px}
.loa-density-dense .loa-summary-row{grid-template-columns:34px 145px 1fr;min-height:28px}
.loa-density-dense .summary-icon svg{width:17px;height:17px}
.loa-density-dense .summary-label,
.loa-density-dense .summary-value{font-size:8.9px;padding:4px 8px}
.loa-density-dense .loa-author-list{line-height:1.35}
.loa-density-dense .loa-corresponding-note{font-size:8.6px;margin-top:4px}

.loa-density-ultra .loa-final-rule{margin-bottom:14px}
.loa-density-ultra .loa-final-main{padding-left:15px;padding-right:15px}
.loa-density-ultra .loa-final-salutation{font-size:11.4px;margin-bottom:6px!important}
.loa-density-ultra .loa-final-intro{font-size:10.1px;line-height:1.36;margin-bottom:5px!important}
.loa-density-ultra .loa-final-review{margin-bottom:7px!important}
.loa-density-ultra .loa-summary-heading{margin-bottom:3px}
.loa-density-ultra .loa-summary-heading strong{font-size:12px}
.loa-density-ultra .heading-doc-icon{width:25px;height:25px}.loa-density-ultra .heading-doc-icon svg{width:21px;height:21px}
.loa-density-ultra .loa-summary-row{grid-template-columns:31px 135px 1fr;min-height:25px}
.loa-density-ultra .summary-icon svg{width:16px;height:16px}
.loa-density-ultra .summary-label,
.loa-density-ultra .summary-value{font-size:8.1px;padding:3px 7px}
.loa-density-ultra .loa-author-list{line-height:1.28}
.loa-density-ultra .loa-corresponding-note{font-size:8px;margin-top:3px}

/* Screen adaptation only. */
@media(max-width:800px){
  .loa-final{
    width:100%;
    height:auto;
    min-height:1123px;
    padding-left:24px;
    padding-right:24px;
  }
  .loa-final-head{padding-right:50px}
  .loa-final-head img{width:225px}
  .loa-final-title strong{font-size:20px}
  .loa-final-main{padding-left:8px;padding-right:8px}
  .loa-closing-block{left:34px;right:34px;grid-template-columns:1fr 215px}
  .loa-validation-panel{left:24px;right:24px}
  .loa-final-footer{left:24px;right:24px}
}

/* FINAL A4 PORTRAIT print profile. */
@page{size:A4 portrait;margin:10mm}
@media print{
  html,body{
    width:auto!important;
    height:auto!important;
    background:#fff!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .admin-topbar,.admin-nav,.no-print,.flash{display:none!important}
  .admin-container{padding:0!important;margin:0!important;max-width:none!important}
  .technical-note{display:none!important}

  .loa-final{
    width:190mm!important;
    max-width:190mm!important;
    height:277mm!important;
    min-height:277mm!important;
    margin:0!important;
    padding:7mm 11mm 0!important;
    border:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .loa-final:after{
    top:61mm!important;
    right:-8mm!important;
    width:64mm!important;
    height:60mm!important;
    background-size:2.4mm 2.4mm!important;
  }
  .loa-ribbon{
    right:8mm!important;
    width:13mm!important;
    height:21mm!important;
    padding-top:5mm!important;
  }
  .loa-ribbon span{
    width:7.6mm!important;height:7.6mm!important;border-width:.7mm!important;font-size:12pt!important;
  }
  .loa-final-head{
    height:22mm!important;
    gap:7mm!important;
    padding-right:15mm!important;
  }
  .loa-final-head img{
    width:64mm!important;
    max-height:20mm!important;
  }
  .loa-final-title strong{font-size:17.5pt!important}
  .loa-final-title span{font-size:12pt!important;margin-top:1mm!important}
  .loa-final-rule{
    height:.7mm!important;
    margin:.3mm 0 5.5mm!important;
  }
  .loa-final-rule span{height:.7mm!important;width:14mm!important}

  .loa-final-main{
    padding:0 5.5mm 108mm!important;
  }
  .loa-final-salutation{
    font-size:9.6pt!important;
    line-height:1.35!important;
    margin-bottom:3.2mm!important;
  }
  .loa-final-intro{
    font-size:8.7pt!important;
    line-height:1.46!important;
    margin-bottom:3mm!important;
  }
  .loa-final-review{
    margin-bottom:4.1mm!important;
  }
  .loa-summary-heading{
    gap:2.2mm!important;
    margin:0 0 1.3mm!important;
  }
  .heading-doc-icon{
    width:7.4mm!important;
    height:7.4mm!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    color:#08627f!important;
  }
  .heading-doc-icon svg{
    width:6.4mm!important;
    height:6.4mm!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.7!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  .loa-summary-heading strong{font-size:10.2pt!important}

  .loa-summary-table{border-radius:1.5mm!important}
  .loa-summary-row{
    grid-template-columns:9mm 38mm 1fr!important;
    min-height:8.3mm!important;
  }
  .summary-icon svg{width:4.8mm!important;height:4.8mm!important}
  .summary-label{
    padding:1.5mm 2.2mm!important;
    font-size:7.3pt!important;
  }
  .summary-value{
    padding:1.5mm 3mm!important;
    font-size:7.3pt!important;
    line-height:1.4!important;
  }
  .loa-summary-title-row .summary-icon,
  .loa-summary-authors-row .summary-icon{padding-top:1.8mm!important}
  .loa-summary-title-row .summary-label,
  .loa-summary-authors-row .summary-label{padding-top:1.9mm!important}
  .loa-corresponding-note{
    margin-top:1.5mm!important;
    font-size:6.6pt!important;
  }

  .loa-closing-block{
    left:16.5mm!important;
    right:13.5mm!important;
    bottom:72.5mm!important;
    height:36mm!important;
    grid-template-columns:1fr 56mm!important;
    gap:7mm!important;
  }
  .loa-signoff{
    font-size:7.6pt!important;
    line-height:1.4!important;
  }
  .loa-sincerely{margin-top:3.8mm!important}
  .loa-signature-image{
    width:31mm!important;
    height:12.5mm!important;
    margin:.4mm 0 .3mm -1mm!important;
  }
  .loa-chief-editor{font-size:7.9pt!important}
  .loa-record-card{
    border-radius:1.8mm!important;
    padding:1.6mm 3.3mm!important;
  }
  .loa-record-row{
    grid-template-columns:6.5mm 1fr!important;
    gap:1.5mm!important;
    padding:1.7mm 0!important;
  }
  .record-icon svg{width:4.7mm!important;height:4.7mm!important}
  .loa-record-row small{font-size:6.2pt!important;margin-bottom:.4mm!important}
  .loa-record-row strong{font-size:7.6pt!important}

  /* Protected verification block: fixed dimensions. */
  .loa-validation-panel{
    left:11.5mm!important;
    right:11.5mm!important;
    bottom:10.5mm!important;
    height:59.5mm!important;
    grid-template-columns:1fr 45.5mm!important;
    gap:3.5mm!important;
    padding:2.4mm 2.6mm 2.2mm 3.2mm!important;
    border-width:.45mm!important;
    border-radius:1.7mm!important;
  }
  .validation-title-row{
    grid-template-columns:6.7mm 1fr!important;
    gap:1.5mm!important;
    margin-bottom:1.7mm!important;
  }
  .validation-shield svg{width:5.8mm!important;height:5.8mm!important}
  .validation-title-row strong{font-size:7.9pt!important}
  .validation-title-row p{
    margin:.6mm 0 0!important;
    font-size:5.7pt!important;
    line-height:1.28!important;
  }
  .validation-details{height:41mm!important;border-radius:1.2mm!important;display:grid!important;grid-template-rows:repeat(3,1fr)!important}
  .validation-detail-row{
    min-height:0!important;
    grid-template-columns:6.2mm 34mm minmax(0,1fr)!important;
    padding:1mm 1.7mm 1mm 1mm!important;
  }
  .validation-detail-icon svg{width:4.1mm!important;height:4.1mm!important}
  .validation-detail-label{font-size:6.2pt!important}
  .validation-token{font-size:8.2pt!important}
  .validation-url{font-size:5.2pt!important;line-height:1.2!important}
  .validation-hash{font-size:4.55pt!important;line-height:1.18!important}
  .loa-validation-qr{border-radius:1.4mm!important}
  .loa-final-qr{
    width:39.5mm!important;
    height:39.5mm!important;
    padding:1.7mm!important;
    margin:.7mm auto 0!important;
  }
  .loa-final-qr img,.loa-final-qr canvas{
    width:36mm!important;
    height:36mm!important;
    max-width:36mm!important;
    max-height:36mm!important;
  }
  .qr-status{
    height:8.3mm!important;
    gap:1.5mm!important;
    font-size:8.4pt!important;
  }
  .qr-status span{width:4.5mm!important;height:4.5mm!important;font-size:7pt!important}
  .qr-caption{
    padding:1.2mm 1mm .7mm!important;
    font-size:5.8pt!important;
    line-height:1.2!important;
  }

  .loa-final-footer{
    left:11.5mm!important;
    right:11.5mm!important;
    bottom:1.8mm!important;
    height:7.7mm!important;
    grid-template-columns:7mm 1fr auto!important;
    gap:1.5mm!important;
    padding:.9mm 2.6mm!important;
  }
  .footer-lock svg{width:4.1mm!important;height:4.1mm!important}
  .footer-copy,.footer-right{font-size:5.3pt!important;line-height:1.2!important}

  /* FINAL VISUAL FIDELITY: NORMAL documents use the approved vertical rhythm.
     Compact/Dense/Ultra rules below remain unchanged for long-content mitigation. */
  .loa-density-normal .loa-summary-row{
    min-height:9.25mm!important;
  }
  .loa-density-normal .summary-label,
  .loa-density-normal .summary-value{
    padding-top:1.72mm!important;
    padding-bottom:1.72mm!important;
  }
  .loa-density-normal .loa-final-review{
    margin-bottom:4.8mm!important;
  }
  .loa-density-normal .loa-corresponding-note{
    margin-top:1.7mm!important;
  }

  /* Adaptive modes alter only narrative/summary space, never QR or validation. */
  .loa-density-compact .loa-final-salutation{font-size:9.2pt!important;margin-bottom:2.5mm!important}
  .loa-density-compact .loa-final-intro{font-size:8.2pt!important;line-height:1.4!important;margin-bottom:2.2mm!important}
  .loa-density-compact .loa-final-review{margin-bottom:3mm!important}
  .loa-density-compact .loa-summary-row{min-height:7.4mm!important}
  .loa-density-compact .summary-label,
  .loa-density-compact .summary-value{font-size:6.8pt!important;padding-top:1.2mm!important;padding-bottom:1.2mm!important}
  .loa-density-compact .loa-corresponding-note{margin-top:1.1mm!important}

  .loa-density-dense .loa-final-rule{margin-bottom:4mm!important}
  .loa-density-dense .loa-final-salutation{font-size:8.8pt!important;margin-bottom:2mm!important}
  .loa-density-dense .loa-final-intro{font-size:7.7pt!important;line-height:1.35!important;margin-bottom:1.7mm!important}
  .loa-density-dense .loa-final-review{margin-bottom:2.2mm!important}
  .loa-density-dense .loa-summary-heading strong{font-size:9.3pt!important}
  .loa-density-dense .heading-doc-icon{width:6.5mm!important;height:6.5mm!important}.loa-density-dense .heading-doc-icon svg{width:5.5mm!important;height:5.5mm!important}
  .loa-density-dense .loa-summary-row{grid-template-columns:8mm 35mm 1fr!important;min-height:6.6mm!important}
  .loa-density-dense .summary-icon svg{width:4.2mm!important;height:4.2mm!important}
  .loa-density-dense .summary-label,
  .loa-density-dense .summary-value{font-size:6.25pt!important;padding:1mm 1.7mm!important}
  .loa-density-dense .loa-corresponding-note{font-size:6.1pt!important;margin-top:.9mm!important}

  .loa-density-ultra .loa-final-rule{margin-bottom:3.2mm!important}
  .loa-density-ultra .loa-final-salutation{font-size:8.4pt!important;margin-bottom:1.6mm!important}
  .loa-density-ultra .loa-final-intro{font-size:7.25pt!important;line-height:1.31!important;margin-bottom:1.3mm!important}
  .loa-density-ultra .loa-final-review{margin-bottom:1.7mm!important}
  .loa-density-ultra .loa-summary-heading{margin-bottom:.8mm!important}
  .loa-density-ultra .loa-summary-heading strong{font-size:8.8pt!important}
  .loa-density-ultra .heading-doc-icon{width:6mm!important;height:6mm!important}.loa-density-ultra .heading-doc-icon svg{width:5mm!important;height:5mm!important}
  .loa-density-ultra .loa-summary-row{grid-template-columns:7.4mm 32mm 1fr!important;min-height:5.9mm!important}
  .loa-density-ultra .summary-icon svg{width:3.8mm!important;height:3.8mm!important}
  .loa-density-ultra .summary-label,
  .loa-density-ultra .summary-value{font-size:5.75pt!important;padding:.8mm 1.5mm!important}
  .loa-density-ultra .loa-corresponding-note{font-size:5.7pt!important;margin-top:.7mm!important}
}

/* FINAL VISUAL LOCK v1.2.3: technical milestone note is not part of the LOA. */
.technical-note{display:none!important}


/* ============================================================
   AJLM LOA FINAL VERIFICATION TYPOGRAPHY LOCK — v1.2.5
   Typography weight only. No layout/geometry properties.
   ============================================================ */
.loa-validation-panel .validation-title-row > div > strong,
.loa-validation-panel .validation-title-row p,
.loa-validation-panel .validation-detail-label,
.loa-validation-panel .validation-token,
.loa-validation-panel .validation-url,
.loa-validation-panel .validation-hash,
.loa-validation-panel .qr-status,
.loa-validation-panel .qr-caption{
  font-weight:700!important;
}


/* ============================================================
   AJLM LOA PRODUCTION-NOTE BLOCK — v1.2.7
   Replaces artificial blank-space filling with substantive LOA text.
   Protected QR/verification/footer geometry remains unchanged.
   ============================================================ */
.loa-production-note{
  margin:14px 0 0;
  max-width:100%;
  color:#172a4d;
  font-size:12.4px;
  line-height:1.55;
  font-weight:400;
  text-align:left;
}
.loa-proof-sentence{display:block;margin-top:6px}

.loa-density-compact .loa-production-note{
  margin-top:10px;
  font-size:11.8px;
  line-height:1.48;
}
.loa-density-dense .loa-production-note{
  margin-top:7px;
  font-size:10.9px;
  line-height:1.42;
}
.loa-density-ultra .loa-production-note{
  margin-top:5px;
  font-size:10.1px;
  line-height:1.36;
}

@media print{
  .loa-production-note{
    margin-top:3mm!important;
    font-size:8.7pt!important;
    line-height:1.46!important;
  }
  .loa-proof-sentence{margin-top:1.5mm!important}
  .loa-density-compact .loa-production-note{
    margin-top:2.4mm!important;
    font-size:8.2pt!important;
    line-height:1.4!important;
  }
  .loa-density-dense .loa-production-note{
    margin-top:1.8mm!important;
    font-size:7.7pt!important;
    line-height:1.35!important;
  }
  .loa-density-ultra .loa-production-note{
    margin-top:1.2mm!important;
    font-size:7.25pt!important;
    line-height:1.31!important;
  }
}

/* ============================================================
   AJLM MANUAL PAYMENT VERIFICATION v2.0.0
   Payment/admin/public-access additions only.
   FINAL LOA geometry rules above are not modified.
   ============================================================ */
.badge.red{background:#fff0f0;color:#a12626}
.subpanel{margin-top:18px;padding:15px;border:1px solid #d8e6f3;border-radius:11px;background:#f9fcff}
.subpanel>strong{color:var(--navy)}
.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.inline-form input{min-width:260px;flex:1;padding:10px 11px;border:1px solid #cbddec;border-radius:9px}
.inline-action-form{margin:0}.action-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.action-row form{margin:0}
.bank-instructions,.secure-link-box{margin-top:20px;padding:17px;border:1px solid #d8e6f3;border-radius:12px;background:#f9fcff}.bank-instructions h3{margin:0 0 14px;color:var(--navy)}.secure-link-box code{display:block;margin-top:8px;padding:10px;background:#fff;border:1px solid #d8e6f3;border-radius:8px;word-break:break-all;font-size:11px}
.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.decision-grid textarea{display:block;width:100%;margin:7px 0 13px;padding:11px;border:1px solid #cbddec;border-radius:9px}.decision-paid{border-top:4px solid var(--green)}.decision-resubmit{border-top:4px solid var(--gold)}
.stat-grid-five{grid-template-columns:repeat(5,1fr)}
.verify-actions{margin-top:22px;display:flex;justify-content:flex-start}

.payment-public-body{min-height:100vh;background:linear-gradient(180deg,#f7fbff,#edf6fc);color:var(--ink)}
.payment-public-top{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:var(--muted);font-size:12px}.payment-public-top a{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:18px}
.payment-public-container{max-width:920px;margin:34px auto;padding:0 18px 40px}.payment-public-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:28px;box-shadow:0 14px 36px rgba(34,76,115,.09)}.payment-logo img{width:310px;max-width:100%;max-height:94px;object-fit:contain;object-position:left center}.payment-title-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:18px 0 24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.payment-title-row small{font-weight:800;letter-spacing:.08em;color:#0878B9}.payment-title-row h1{margin:5px 0 0;font-size:24px;color:var(--navy)}.payment-status{display:inline-flex;padding:8px 11px;border-radius:9px;font-size:11px;font-weight:900;background:#edf3f8;color:#4e617b}.payment-status-paid{background:#e7f8f0;color:#08784b}.payment-status-proof_submitted{background:#e9f3ff;color:#0968cf}.payment-status-needs_resubmission{background:#fff4df;color:#8a5700}
.payment-public-details{padding:2px 0 20px;border-bottom:1px solid #edf2f6}.payment-bank-card{margin:24px 0;padding:20px;border-radius:13px;background:#f4f9fe;border:1px solid #cfe1f1}.payment-bank-card h2,.payment-upload-section h2{margin:0 0 8px;color:var(--navy);font-size:18px}.payment-bank-card>p,.payment-upload-section>p{color:var(--muted);font-size:12px}.payment-bank-card dl{margin-top:17px}.payment-amount{color:#0b6bc9;font-size:17px}
.payment-upload-section{margin-top:22px;padding-top:4px}.payment-upload-section .form-grid{margin:15px 0}.payment-upload-section input[type=file]{padding:10px;background:#fbfdff}.public-success,.public-info,.public-warning{margin:18px 0;padding:14px 16px;border-radius:10px;font-size:13px;line-height:1.55}.public-success{background:#eafff4;border:1px solid #b6e6cc;color:#0b7148}.public-info{background:#eef7ff;border:1px solid #c2dcf4;color:#205887}.public-warning{background:#fff7e8;border:1px solid #efd19b;color:#7a5414}.payment-paid-success{margin-top:24px}.payment-public-actions{display:flex;justify-content:flex-end;margin-top:20px}.payment-invalid{text-align:center;max-width:640px;margin:100px auto}.payment-invalid h1{color:var(--navy)}

.public-loa-body{background:#edf5fb;min-height:100vh}.public-loa-container{max-width:980px;margin:0 auto;padding:28px}.public-loa-toolbar{max-width:794px;margin-left:auto;margin-right:auto}

@media(max-width:900px){.stat-grid-five{grid-template-columns:repeat(2,1fr)}.decision-grid{grid-template-columns:1fr}.payment-public-top{padding:0 16px}.payment-public-top>span{display:none}.payment-public-card{padding:20px}.payment-title-row{flex-direction:column}.payment-public-details,.payment-bank-card dl{grid-template-columns:1fr}.public-loa-container{padding:18px}}

@media print{
  .payment-public-top,.payment-upload-section,.payment-public-actions,.privacy-note{display:none!important}
  .payment-public-body,.payment-public-container{background:#fff!important;margin:0!important;padding:0!important;max-width:none!important}
  .payment-public-card{box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important}
  .public-loa-container{padding:0!important;margin:0!important;max-width:none!important}
}

/* AJLM PUBLIC PORTAL + INVOICE UI LOCK — v2.0.1 */
.payment-public-body{background:radial-gradient(circle at 86% 12%,rgba(15,115,238,.09),transparent 26%),linear-gradient(180deg,#f8fbff 0%,#edf5fb 100%)!important}
.payment-public-top{height:72px!important;padding:0 30px!important;box-shadow:0 1px 0 rgba(17,66,108,.04)}
.payment-public-container{width:min(100%,980px)!important;max-width:980px!important;margin:34px auto!important;padding:0 20px 42px!important}
.payment-public-card.payment-invoice-card{padding:0!important;overflow:hidden!important;border:1px solid #d5e4f1!important;border-radius:18px!important;box-shadow:0 18px 48px rgba(28,74,118,.11)!important}
.payment-brand-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 30px 18px;background:linear-gradient(135deg,#fff 0%,#f5fbff 100%);border-bottom:1px solid #e2edf5}
.payment-logo{display:flex;align-items:center;min-width:0}.payment-logo img{display:block!important;width:220px!important;height:auto!important;max-width:220px!important;max-height:64px!important;object-fit:contain!important;object-position:left center!important}
.payment-brand-copy{display:flex;flex-direction:column;align-items:flex-end;text-align:right;color:#536984;font-size:11px;line-height:1.4}.payment-brand-copy strong{color:#082F5B;font-size:13px;letter-spacing:.05em}
.payment-title-row{margin:0!important;padding:24px 30px 20px!important;align-items:center!important;background:#fff}.payment-title-row small{color:#0d7692!important;font-size:10px!important}.payment-title-row h1{margin-top:6px!important;font-size:27px!important;line-height:1.2!important;letter-spacing:-.025em}
.payment-status{border-radius:999px!important;padding:8px 13px!important;letter-spacing:.035em;box-shadow:inset 0 0 0 1px rgba(0,0,0,.025)}
.payment-public-details{display:grid!important;grid-template-columns:190px minmax(0,1fr)!important;gap:0!important;margin:0 30px!important;padding:4px 0 18px!important;border-bottom:1px solid #e9f0f6!important}.payment-public-details dt,.payment-public-details dd{padding:11px 12px!important;border-top:1px solid #edf3f7}.payment-public-details dt:first-of-type,.payment-public-details dt:first-of-type+dd{border-top:0}.payment-public-details dt{color:#647693!important;font-weight:650}.payment-public-details dd{color:#172a4d!important}.payment-public-details dd strong{color:#087b97;font-size:15px}
.payment-bank-card{margin:22px 30px 0!important;padding:20px 22px!important;background:linear-gradient(135deg,#f4fbff,#eef7fd)!important;border-color:#cfe2f0!important}.payment-upload-section{margin:22px 30px 0!important;padding-top:0!important}.public-success,.public-info,.public-warning{margin:20px 30px!important}.payment-paid-success{position:relative;margin:22px 30px 0!important;padding:18px 20px 18px 54px!important;border-radius:13px!important}.payment-paid-success:before{content:"✓";position:absolute;left:18px;top:18px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#08784b;color:#fff;font-weight:900}.payment-paid-success>strong{display:block;font-size:15px;margin-bottom:3px}.payment-paid-success p{margin:0}.payment-paid-success .action-row{margin-top:14px}.payment-public-actions{margin:0!important;padding:20px 30px 28px!important;justify-content:flex-start!important}.payment-public-actions .secondary,.payment-paid-success .primary,.payment-paid-success .secondary{min-height:42px;align-items:center;justify-content:center}
.portal-body{min-height:100vh;margin:0;background:radial-gradient(circle at 84% 12%,rgba(15,115,238,.09),transparent 26%),linear-gradient(180deg,#f8fbff,#edf5fb);color:var(--ink)}.portal-container{width:min(100%,760px);margin:44px auto;padding:0 18px 40px}.portal-card{background:#fff;border:1px solid #d6e5f2;border-radius:18px;padding:30px;box-shadow:0 18px 48px rgba(28,74,118,.10)}.portal-logo{display:block;width:230px!important;max-width:70%!important;max-height:72px!important;object-fit:contain!important;object-position:left center;margin-bottom:24px}.portal-eyebrow{color:#0d7692;font-size:10px;font-weight:850;letter-spacing:.09em}.portal-card h1{margin:7px 0 9px;color:var(--navy);font-size:28px}.portal-card>p{color:var(--muted);font-size:13px;line-height:1.65}.portal-token-form{margin-top:22px}.portal-token-form label{display:block;color:#334761;font-size:12px;font-weight:750}.portal-token-form input{display:block;width:100%;margin:7px 0 12px;padding:13px 14px;border:1px solid #bfd5e9;border-radius:10px;background:#fff}.portal-token-form .primary{width:100%;justify-content:center}.portal-help{margin-top:16px;padding:12px 14px;border-radius:10px;background:#f4f9fd;color:#647693;font-size:11px;line-height:1.55}.portal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.portal-alert{margin-left:0!important;margin-right:0!important}.portal-policy h2{margin:24px 0 6px;color:var(--navy);font-size:17px}.portal-policy p{color:#536984;font-size:13px;line-height:1.7}
@media(max-width:700px){.payment-public-container{padding-left:12px!important;padding-right:12px!important}.payment-brand-row{padding:18px 20px;align-items:flex-start}.payment-logo img{width:180px!important;max-width:180px!important;max-height:54px!important}.payment-brand-copy{display:none}.payment-title-row{padding:20px!important}.payment-public-details{grid-template-columns:1fr!important;margin:0 20px!important}.payment-public-details dt{padding-bottom:2px!important;border-top:1px solid #edf3f7!important}.payment-public-details dd{padding-top:4px!important;border-top:0!important}.payment-bank-card,.payment-upload-section,.public-success,.public-info,.public-warning,.payment-paid-success{margin-left:20px!important;margin-right:20px!important}.payment-public-actions{padding-left:20px!important;padding-right:20px!important}.portal-card{padding:22px}}
@media print{@page{size:A4 portrait;margin:10mm}.payment-public-body{min-height:0!important}.payment-public-container{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}.payment-public-card.payment-invoice-card{overflow:visible!important;border:0!important;box-shadow:none!important;border-radius:0!important}.payment-brand-row{padding:0 0 4mm!important;background:#fff!important}.payment-logo img{width:50mm!important;max-width:50mm!important;max-height:15mm!important}.payment-brand-copy{font-size:7pt}.payment-title-row{padding:4mm 0 3mm!important}.payment-title-row h1{font-size:16pt!important}.payment-public-details{margin:0!important;grid-template-columns:38mm 1fr!important;padding-bottom:3mm!important}.payment-public-details dt,.payment-public-details dd{padding:1.7mm 1.5mm!important;font-size:7.8pt!important}.payment-bank-card,.public-success,.public-info,.public-warning,.payment-paid-success{margin:3mm 0 0!important;padding-top:3mm!important;padding-bottom:3mm!important}.payment-paid-success .action-row,.payment-public-actions{display:none!important}.payment-paid-success:before{top:3mm}.privacy-note{display:none!important}}


/* =====================================================================
   AJLM INVOICE VISUAL STATE LOCK — v2.0.3
   Scope: .payment-public-body invoice only.
   LOA, Verify, Admin, Homepage and SMTP UI are intentionally untouched.
   ===================================================================== */

.payment-public-body{
  background:
    radial-gradient(circle at 88% 8%,rgba(18,129,160,.085),transparent 25%),
    radial-gradient(circle at 6% 28%,rgba(33,105,190,.055),transparent 24%),
    linear-gradient(180deg,#f8fbfe 0%,#edf4f9 100%)!important;
}

.payment-public-container{
  width:min(100%,1000px)!important;
  max-width:1000px!important;
  margin:34px auto!important;
  padding:0 20px 44px!important;
}

.payment-public-card.payment-invoice-card{
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #d7e4ee!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 22px 58px rgba(30,68,103,.11)!important;
}

.invoice-brandbar{
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 30px;
  border-bottom:1px solid #e4edf4;
  background:
    linear-gradient(135deg,#ffffff 0%,#f7fbfe 70%,#eff8fb 100%);
}

.invoice-brandbar .payment-logo{
  display:flex;
  align-items:center;
  min-width:0;
}

.invoice-brandbar .payment-logo img{
  display:block!important;
  width:196px!important;
  height:auto!important;
  max-width:196px!important;
  max-height:58px!important;
  object-fit:contain!important;
  object-position:left center!important;
}

.invoice-document-id{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  gap:3px;
}

.invoice-document-id strong{
  color:#102744;
  font-size:11px;
  letter-spacing:.075em;
  font-weight:850;
}

.invoice-document-id span{
  color:#6b7f94;
  font-size:11px;
}

.invoice-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  gap:28px;
  align-items:start;
  padding:27px 30px 25px;
  background:#fff;
}

.invoice-hero-copy small,
.invoice-section-head small{
  display:block;
  color:#0a7891;
  font-size:9.5px;
  line-height:1.3;
  font-weight:900;
  letter-spacing:.095em;
}

.invoice-hero-copy h1{
  margin:6px 0 7px;
  color:#0d203d;
  font-size:29px;
  line-height:1.15;
  letter-spacing:-.025em;
}

.invoice-hero-copy p{
  max-width:660px;
  margin:0;
  color:#6a7e94;
  font-size:11.5px;
  line-height:1.6;
}

.invoice-hero-side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}

.payment-status{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:31px;
  padding:7px 12px!important;
  border-radius:999px!important;
  border:1px solid transparent;
  font-size:9.5px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.055em!important;
  white-space:nowrap;
}

.payment-status-awaiting_payment{
  color:#81530a!important;
  background:#fff7e5!important;
  border-color:#efd397!important;
}

.payment-status-proof_submitted{
  color:#105d91!important;
  background:#eaf5ff!important;
  border-color:#badcf4!important;
}

.payment-status-needs_resubmission{
  color:#8a4d06!important;
  background:#fff1df!important;
  border-color:#efc88f!important;
}

.payment-status-paid{
  color:#087348!important;
  background:#e9f9f1!important;
  border-color:#b5e3cc!important;
}

.invoice-fee{
  min-width:190px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  padding:13px 15px;
  border-radius:11px;
  background:#f4f9fc;
  border:1px solid #dfebf3;
}

.invoice-fee span{
  color:#6b7f94;
  font-size:9.5px;
  font-weight:700;
}

.invoice-fee strong{
  margin-top:3px;
  color:#0b7890;
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.02em;
}

.invoice-progress{
  display:grid;
  grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr) 58px minmax(0,1fr);
  align-items:center;
  margin:0 30px 2px;
  padding:17px 18px;
  border:1px solid #e2ebf2;
  border-radius:13px;
  background:#f9fbfd;
}

.invoice-step{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  color:#8797a8;
}

.invoice-step-dot{
  flex:0 0 27px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #c8d5df;
  background:#fff;
  color:#8090a1;
  font-size:10px;
  font-weight:900;
}

.invoice-step strong{
  display:block;
  color:#627489;
  font-size:10.5px;
  line-height:1.2;
}

.invoice-step small{
  display:block;
  margin-top:2px;
  color:#98a5b2;
  font-size:8.5px;
  line-height:1.25;
}

.invoice-step.is-done .invoice-step-dot,
.invoice-step.is-current .invoice-step-dot{
  border-color:#0a8294;
  background:#0a8294;
  color:#fff;
}

.invoice-step.is-done strong,
.invoice-step.is-current strong{
  color:#1c3959;
}

.invoice-step.is-current strong{
  color:#08788f;
}

.invoice-step-line{
  height:2px;
  background:#dbe5ec;
  border-radius:999px;
}

.invoice-step-line.is-done{
  background:#4aa6b4;
}

.invoice-state-callout{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:12px;
  align-items:start;
  margin:20px 30px 0!important;
  padding:15px 17px!important;
  border-radius:12px!important;
  font-size:11.5px!important;
  line-height:1.55!important;
}

.invoice-state-callout .invoice-callout-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:14px;
  font-weight:900;
}

.invoice-state-callout strong{
  display:block;
  margin:1px 0 2px;
  font-size:12.5px;
}

.invoice-state-callout p{
  margin:0;
}

.invoice-state-callout-blue{
  color:#215b7e!important;
  background:#eef8ff!important;
  border:1px solid #c8e1f2!important;
}

.invoice-state-callout-blue .invoice-callout-icon{
  color:#fff;
  background:#2682b3;
}

.invoice-state-callout-amber{
  color:#775114!important;
  background:#fff8e8!important;
  border:1px solid #ead29d!important;
}

.invoice-state-callout-amber .invoice-callout-icon{
  color:#fff;
  background:#c48a24;
}

.invoice-state-callout-green{
  color:#0b6845!important;
  background:#ebfaf3!important;
  border:1px solid #b9e2cd!important;
}

.invoice-state-callout-green .invoice-callout-icon{
  color:#fff;
  background:#11805a;
}

.invoice-section{
  margin:20px 30px 0;
  padding:20px;
  border:1px solid #e0e9f0;
  border-radius:13px;
  background:#fff;
}

.invoice-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:15px;
}

.invoice-section-head h2{
  margin:4px 0 0;
  color:#132b4a;
  font-size:17px;
  line-height:1.2;
}

.invoice-manuscript{
  background:linear-gradient(180deg,#fff,#fbfdff);
}

.invoice-manuscript-title{
  padding:15px 16px;
  border-radius:10px;
  background:#f5f9fc;
  border:1px solid #e5edf3;
}

.invoice-manuscript-title span,
.invoice-meta-item span,
.invoice-bank-detail span,
.invoice-review-grid span{
  display:block;
  color:#74869a;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.015em;
}

.invoice-manuscript-title strong{
  display:block;
  margin-top:5px;
  color:#162b48;
  font-size:12.5px;
  line-height:1.55;
  font-weight:750;
}

.invoice-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:10px;
}

.invoice-meta-item{
  min-height:66px;
  padding:12px 14px;
  border:1px solid #e5edf3;
  border-radius:10px;
  background:#fff;
}

.invoice-meta-item strong{
  display:block;
  margin-top:5px;
  color:#203753;
  font-size:11.5px;
  line-height:1.35;
  word-break:break-word;
}

.invoice-meta-item .invoice-meta-amount{
  color:#08798f;
  font-size:15px;
}

.invoice-bank-section{
  background:linear-gradient(135deg,#f4fbfd,#f7fbff);
  border-color:#cde1eb;
}

.invoice-security-note,
.invoice-file-note{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 9px;
  border-radius:999px;
  color:#647a8f;
  background:#fff;
  border:1px solid #d9e4ec;
  font-size:8.5px;
  font-weight:800;
  white-space:nowrap;
}

.invoice-security-success{
  color:#087348;
  background:#f1fbf6;
  border-color:#bce4cf;
}

.invoice-bank-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.invoice-bank-detail{
  min-height:65px;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid #d9e8ef;
  background:rgba(255,255,255,.88);
}

.invoice-bank-detail strong{
  display:block;
  margin-top:5px;
  color:#193551;
  font-size:12px;
  line-height:1.35;
}

.invoice-bank-number strong{
  font-size:15px;
  letter-spacing:.035em;
  color:#0c7087;
}

.invoice-bank-amount{
  border-color:#afd3dd;
  background:#eefafd;
}

.invoice-bank-amount strong{
  color:#08788f;
  font-size:17px;
}

.invoice-bank-note,
.invoice-review-note{
  margin-top:11px;
  padding:10px 12px;
  border-radius:9px;
  color:#63778b;
  background:rgba(255,255,255,.62);
  border:1px dashed #ccdae4;
  font-size:10.5px;
  line-height:1.55;
}

.payment-upload-section{
  padding-top:20px!important;
}

.invoice-upload-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.invoice-upload-grid label{
  display:block;
  color:#40556e;
  font-size:10.5px;
  font-weight:750;
}

.invoice-upload-grid input,
.invoice-upload-grid textarea{
  width:100%;
  margin-top:6px;
  border:1px solid #cad8e3;
  background:#fbfdff;
  border-radius:9px;
}

.invoice-upload-grid input:focus,
.invoice-upload-grid textarea:focus{
  border-color:#4c9bb1;
  box-shadow:0 0 0 3px rgba(43,137,162,.10);
}

.invoice-upload-full{
  grid-column:1 / -1;
}

.invoice-submit-proof{
  margin-top:14px;
  min-width:190px;
  justify-content:center;
}

.invoice-review-section{
  background:#f9fcff;
}

.invoice-review-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.invoice-review-grid>div{
  min-height:69px;
  padding:12px 13px;
  border-radius:10px;
  border:1px solid #dde8f0;
  background:#fff;
}

.invoice-review-grid strong{
  display:block;
  margin-top:5px;
  color:#24415d;
  font-size:10.5px;
  line-height:1.35;
}

.invoice-paid-section{
  background:linear-gradient(135deg,#fbfffd,#f5fcf8);
  border-color:#cfe5d8;
}

.invoice-paid-copy{
  margin:0;
  max-width:760px;
  color:#5e7485;
  font-size:11.5px;
  line-height:1.65;
}

.invoice-loa-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}

.invoice-loa-actions .primary,
.invoice-loa-actions .secondary{
  min-height:42px;
  justify-content:center;
}

.invoice-loa-primary{
  min-width:180px;
}

.invoice-footer-actions{
  display:flex;
  justify-content:flex-end;
  padding:20px 30px 18px;
}

.invoice-footer-actions .secondary{
  min-height:40px;
}

.invoice-document-footer{
  display:flex;
  justify-content:space-between;
  gap:22px;
  padding:13px 30px;
  color:#8190a0;
  background:#f7fafc;
  border-top:1px solid #e5edf3;
  font-size:8.5px;
  line-height:1.45;
}

.invoice-document-footer span:first-child{
  color:#667b8f;
  font-weight:800;
  white-space:nowrap;
}

.invoice-document-footer span:last-child{
  max-width:620px;
  text-align:right;
}

.invoice-legacy-privacy-note{
  display:none!important;
}

/* State accent at the top of the document. */
.invoice-state-awaiting_payment{border-top:4px solid #d8a447!important}
.invoice-state-proof_submitted{border-top:4px solid #3489b8!important}
.invoice-state-needs_resubmission{border-top:4px solid #c7832a!important}
.invoice-state-paid{border-top:4px solid #22845e!important}

@media(max-width:760px){
  .payment-public-container{
    margin:18px auto!important;
    padding:0 10px 28px!important;
  }

  .invoice-brandbar{
    min-height:auto;
    padding:17px 18px;
  }

  .invoice-brandbar .payment-logo img{
    width:168px!important;
    max-width:168px!important;
    max-height:50px!important;
  }

  .invoice-document-id{display:none}

  .invoice-hero{
    grid-template-columns:1fr;
    gap:16px;
    padding:21px 18px 18px;
  }

  .invoice-hero-copy h1{
    font-size:22px;
    overflow-wrap:anywhere;
  }

  .invoice-hero-side{
    align-items:flex-start;
    flex-direction:row;
    justify-content:space-between;
    flex-wrap:wrap;
  }

  .invoice-fee{
    min-width:160px;
    align-items:flex-start;
  }

  .invoice-progress{
    grid-template-columns:1fr;
    gap:8px;
    margin:0 18px 2px;
  }

  .invoice-step-line{
    width:2px;
    height:14px;
    margin-left:13px;
  }

  .invoice-state-callout,
  .invoice-section{
    margin-left:18px!important;
    margin-right:18px!important;
  }

  .invoice-meta-grid,
  .invoice-bank-grid,
  .invoice-upload-grid,
  .invoice-review-grid{
    grid-template-columns:1fr;
  }

  .invoice-upload-full{
    grid-column:auto;
  }

  .invoice-section-head{
    flex-direction:column;
    gap:9px;
  }

  .invoice-footer-actions{
    justify-content:flex-start;
    padding-left:18px;
    padding-right:18px;
  }

  .invoice-document-footer{
    flex-direction:column;
    padding:13px 18px;
  }

  .invoice-document-footer span:last-child{
    text-align:left;
  }
}

@media print{
  @page{size:A4 portrait;margin:10mm}

  .payment-public-top,
  .no-print,
  .invoice-legacy-privacy-note{
    display:none!important;
  }

  .payment-public-body,
  .payment-public-container{
    background:#fff!important;
    width:auto!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  .payment-public-card.payment-invoice-card{
    border:0!important;
    border-top:2.2pt solid #0a8294!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  .invoice-brandbar{
    min-height:0!important;
    padding:0 0 4mm!important;
    background:#fff!important;
  }

  .invoice-brandbar .payment-logo img{
    width:48mm!important;
    max-width:48mm!important;
    max-height:14mm!important;
  }

  .invoice-document-id strong{font-size:7pt!important}
  .invoice-document-id span{font-size:6.5pt!important}

  .invoice-hero{
    grid-template-columns:1fr 45mm!important;
    gap:6mm!important;
    padding:4mm 0 3.5mm!important;
  }

  .invoice-hero-copy small,
  .invoice-section-head small{
    font-size:6.3pt!important;
  }

  .invoice-hero-copy h1{
    font-size:15pt!important;
    margin:1mm 0!important;
  }

  .invoice-hero-copy p{
    font-size:6.8pt!important;
    line-height:1.4!important;
  }

  .payment-status{
    min-height:0!important;
    padding:1.5mm 2.2mm!important;
    font-size:6.4pt!important;
  }

  .invoice-fee{
    min-width:0!important;
    padding:2.2mm 2.5mm!important;
  }

  .invoice-fee span{font-size:6pt!important}
  .invoice-fee strong{font-size:12pt!important}

  .invoice-progress{
    margin:0!important;
    padding:2.7mm 3mm!important;
    grid-template-columns:minmax(0,1fr) 10mm minmax(0,1fr) 10mm minmax(0,1fr)!important;
  }

  .invoice-step-dot{
    width:5.5mm!important;
    height:5.5mm!important;
    flex-basis:5.5mm!important;
    font-size:6.3pt!important;
  }

  .invoice-step strong{font-size:6.5pt!important}
  .invoice-step small{font-size:5.5pt!important}

  .invoice-state-callout{
    margin:3mm 0 0!important;
    padding:2.5mm 3mm!important;
    grid-template-columns:6mm 1fr!important;
    gap:2mm!important;
    font-size:6.8pt!important;
  }

  .invoice-state-callout .invoice-callout-icon{
    width:5.5mm!important;
    height:5.5mm!important;
    font-size:7pt!important;
  }

  .invoice-state-callout strong{font-size:7.2pt!important}

  .invoice-section{
    margin:3mm 0 0!important;
    padding:3mm!important;
    border-radius:2mm!important;
  }

  .invoice-section-head{
    margin-bottom:2.5mm!important;
  }

  .invoice-section-head h2{
    font-size:9.3pt!important;
    margin-top:.8mm!important;
  }

  .invoice-manuscript-title{
    padding:2.3mm 2.5mm!important;
  }

  .invoice-manuscript-title span,
  .invoice-meta-item span,
  .invoice-bank-detail span,
  .invoice-review-grid span{
    font-size:5.8pt!important;
  }

  .invoice-manuscript-title strong{
    margin-top:.8mm!important;
    font-size:7pt!important;
    line-height:1.4!important;
  }

  .invoice-meta-grid,
  .invoice-bank-grid{
    gap:2mm!important;
    margin-top:2mm!important;
  }

  .invoice-meta-item,
  .invoice-bank-detail{
    min-height:0!important;
    padding:2.1mm 2.3mm!important;
  }

  .invoice-meta-item strong,
  .invoice-bank-detail strong{
    margin-top:.7mm!important;
    font-size:6.7pt!important;
  }

  .invoice-meta-item .invoice-meta-amount,
  .invoice-bank-number strong{
    font-size:8pt!important;
  }

  .invoice-bank-amount strong{
    font-size:9pt!important;
  }

  .invoice-bank-note,
  .invoice-review-note{
    margin-top:2mm!important;
    padding:1.8mm 2.2mm!important;
    font-size:6.2pt!important;
  }

  .invoice-review-grid{
    gap:2mm!important;
  }

  .invoice-review-grid>div{
    min-height:0!important;
    padding:2.2mm!important;
  }

  .invoice-review-grid strong{
    font-size:6.4pt!important;
  }

  .invoice-paid-copy{
    font-size:6.8pt!important;
    line-height:1.45!important;
  }

  .invoice-document-footer{
    margin-top:3mm!important;
    padding:2mm 0 0!important;
    background:#fff!important;
    border-top:1px solid #dfe8ef!important;
    font-size:5.5pt!important;
  }
}

/* AJLM v1.0 digital signature */
.loa-signature-qr{width:100px;height:100px;border:1px solid #D9E4ED;border-radius:8px;background:#fff;display:grid;place-items:center;padding:3px;margin:5px 0 6px}.loa-signature-qr img,.loa-signature-qr canvas{width:92px!important;height:92px!important;max-width:92px!important;max-height:92px!important}.loa-digital-signature-note{display:block;margin-top:4px;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#0878B9}
