/* Mira Reports — report stylesheet (v0.7.4)
   Everything here is scoped to .mr and uses mr- class names so app styles can never collide with it.
   Every report page is a true 8.5 x 11 in sheet: header (auto height) / body (fills) / footer (auto height). */

.mr{
  /* Brand palette */
  --mr-navy:#0b2f5e; --mr-blue:#0a64b4; --mr-green:#6aa121; --mr-pale:#eaf3fa; --mr-line:#d4e1ec; --mr-ink:#1d2733; --mr-muted:#5b6b7c;
  /* Where Mira writes the address + page number on top of an uploaded footer image.
     Measured from the left/right edges of the footer artwork. Adjust if your footer artwork changes. */
  --mr-foot-text-right:17%; --mr-foot-text-bottom:.16in; --mr-foot-text-color:#fff;
  width:8.5in; margin:0 auto; display:flex; flex-direction:column; gap:.3in;
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--mr-ink); line-height:1.35;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.mr *{box-sizing:border-box}
.mr h1,.mr h2,.mr h3,.mr p,.mr figure{margin:0}
.mr img{display:block;max-width:none}
.mr-viewport{padding:.25in 0 .5in;overflow-x:hidden}

/* ---------- Page shell ---------- */
.mr-page{position:relative;width:8.5in;height:11in;background:#fff;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 6px 28px rgba(15,23,42,.14)}
.mr-body{flex:1 1 auto;min-height:0;overflow:hidden;padding:.24in .55in .2in}

/* ---------- Header: uploaded artwork, shown at its own proportions ---------- */
.mr-head{flex:none;width:100%}
.mr-head--art img{width:100%;height:auto}
.mr-head--basic{display:flex;align-items:center;gap:.16in;padding:.3in .55in .2in;border-bottom:3px solid var(--mr-green)}
.mr-head--basic img{max-height:.95in;max-width:2.6in;width:auto;height:auto}
.mr-head--basic b{font-size:20pt;color:var(--mr-navy)}

/* ---------- Footer: uploaded artwork + dynamic text overlay ---------- */
.mr-foot{flex:none;position:relative;width:100%}
.mr-foot--art img{width:100%;height:100%}
.mr-foot-text{position:absolute;bottom:var(--mr-foot-text-bottom);right:var(--mr-foot-text-right);max-width:52%;display:flex;flex-direction:column;align-items:flex-end;gap:.04in;text-align:right;color:var(--mr-foot-text-color);font-size:10pt;line-height:1.25;white-space:nowrap;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.mr-foot-text>span:first-child{font-weight:700;font-size:10.5pt}
.mr-foot-text .mr-sep{opacity:.7;padding:0 .08in}
.mr-foot--basic{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.3in;min-height:.8in;padding:.12in .55in;background:var(--mr-navy);border-top:3px solid var(--mr-green);color:#fff}
.mr-foot--basic .mr-foot-brand b{display:block;font-size:13pt}
.mr-foot--basic .mr-foot-brand small{display:block;font-size:7.5pt;font-weight:700;letter-spacing:.06em;color:#9dd35a}
.mr-foot--basic .mr-foot-text{position:static;max-width:none;justify-self:end;text-shadow:none}

/* ---------- Interior page content ---------- */
.mr-title{font-size:24pt;font-weight:700;color:var(--mr-navy);letter-spacing:-.01em;margin:0 0 .16in!important}
.mr-sub{font-size:13.5pt;font-weight:700;color:var(--mr-navy);background:var(--mr-pale);border-left:5px solid var(--mr-blue);padding:.06in .14in;margin:-.06in 0 .14in!important}

.mr-prose p{font-size:11pt;line-height:1.5;margin:0 0 .08in!important}

.mr-kv{border-bottom:1px solid var(--mr-line)}
.mr-kv-row{display:grid;grid-template-columns:2.7in 1fr;border:1px solid var(--mr-line);border-bottom:0}
.mr-kv-row b{background:var(--mr-pale);color:var(--mr-blue);font-size:11.5pt;font-weight:700;padding:.075in .2in}
.mr-kv-row span{font-size:11.5pt;padding:.075in .2in;overflow-wrap:anywhere}
.mr-kv-row span.mr-empty{color:#98a4b0}
.mr-note{margin-top:.2in;border:1px solid var(--mr-line)}
.mr-note h3{background:#e1eef8;color:var(--mr-blue);font-size:12.5pt;font-weight:700;padding:.1in .18in}
.mr-note p{font-size:11pt;padding:.12in .18in;white-space:pre-line}

.mr-photos{display:grid;grid-template-columns:1fr 1fr;gap:.16in .2in;align-content:start}
.mr-photo{border:1px solid var(--mr-line);break-inside:avoid}
.mr-photo img{width:100%;height:1.72in;object-fit:cover}
.mr-photo figcaption{padding:.06in .11in .07in}
.mr-tag{display:block;font-size:7.5pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mr-blue)}
.mr-photo p{font-size:9.5pt;line-height:1.35;margin:.04in 0 0!important}
.mr-photo small{display:block;margin-top:.02in;font-size:8pt;color:var(--mr-muted)}
.mr-photo small b{color:var(--mr-ink);font-weight:700}

.mr-callout{margin-top:.25in;background:var(--mr-pale);border-left:5px solid var(--mr-green);padding:.12in .18in;font-size:10pt}
.mr-callout b{display:block;color:var(--mr-navy);margin-bottom:.03in}

/* ---------- Cover ----------
   Structure: header artwork / style-specific middle / details strip / footer artwork.
   Styles: .mr-cover--angled (diagonal photo), .mr-cover--centered (plain centered photo), .mr-cover--banner (full-width photo). */
.mr-cover-mid{position:relative;overflow:hidden;min-height:0}
.mr-cover-text h1{font-family:"Roboto Condensed","Arial Narrow",Roboto,Arial,sans-serif;font-size:36pt;font-weight:800;line-height:.98;letter-spacing:-.005em;color:var(--mr-navy);margin:0 0 .2in!important;text-transform:uppercase}
.mr-cover-text h1 span{display:block;color:var(--mr-blue)}
.mr-addr{font-size:18pt;line-height:1.3;color:#1c2b3e}
.mr-addr span{display:block}
.mr-rule{width:.8in;height:4px;background:var(--mr-green);margin:.2in 0 0}
.mr-cover-photo{background:#e8eef4;overflow:hidden}
.mr-cover-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.mr-cover-photo--empty{display:grid;place-items:center;color:#8a99a8;font-size:11pt}

/* Angled: title left, diagonal photo right */
.mr-cover--angled .mr-cover-mid{flex:none;height:6.3in}
.mr-cover--angled .mr-cover-text{position:relative;z-index:2;width:58%;height:100%;padding:0 0 0 .5in;display:flex;flex-direction:column;justify-content:center}
.mr-cover--angled .mr-cover-photo{position:absolute;top:0;right:0;bottom:0;width:56%;clip-path:polygon(40% 0,100% 0,100% 100%,0 100%)}
.mr-cover--angled .mr-cover-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 28%)}
.mr-cover--angled .mr-cover-photo--empty span{transform:translateX(15%)}
.mr-cover-accent{position:absolute;top:0;right:0;bottom:0;width:56%;pointer-events:none;z-index:1}
.mr-cover-accent svg{width:100%;height:100%}
.mr-cover--angled .mr-cover-meta{flex:1 1 auto;align-content:center}

/* Centered: no design, title above a centered photo */
.mr-cover--centered .mr-cover-mid{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.32in;padding:.25in .6in;text-align:center}
.mr-cover--centered .mr-rule{margin:.2in auto 0}
.mr-cover--centered .mr-cover-photo{flex:none;width:6.3in;height:4.2in;border-radius:6px;box-shadow:0 8px 26px rgba(11,47,94,.16)}
.mr-cover--centered .mr-cover-meta{text-align:center}

/* Banner: full-width photo, title below */
.mr-cover--banner .mr-cover-mid{flex:1 1 auto;display:flex;flex-direction:column}
.mr-cover--banner .mr-cover-photo{flex:none;width:100%;height:4.6in}
.mr-cover--banner .mr-cover-text{flex:1;display:flex;flex-direction:column;justify-content:center;padding:.2in .55in}

/* Details strip (all styles) */
.mr-cover-meta{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.25in;margin:0;padding:.28in .55in .3in;border-top:3px solid var(--mr-green)}
.mr-cover-meta dt{font-size:9pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mr-blue)}
.mr-cover-meta dd{margin:.06in 0 0;font-size:13.5pt;font-weight:700;color:var(--mr-ink)}
.mr-cover-meta dd small{display:block;margin-top:.02in;font-weight:400;font-size:10.5pt;color:var(--mr-muted)}

/* ---------- Table of contents ---------- */
.mr-toc{display:flex;flex-direction:column;gap:.03in;margin-top:.1in}
.mr-toc-row{text-decoration:none;display:flex;align-items:baseline;gap:.1in;font-size:13pt;font-weight:700;color:var(--mr-navy);padding:.07in 0}
.mr-toc-row i{flex:1;border-bottom:2px dotted #b7c7d6;transform:translateY(-.05in)}
.mr-toc-row b{min-width:.3in;text-align:right;color:var(--mr-blue)}
.mr-toc-sub{font-size:11.5pt;font-weight:500;color:var(--mr-ink);padding:.03in 0 .03in .35in}
.mr-toc-sub b{font-weight:500;color:var(--mr-muted)}

/* ---------- Laboratory pages (the lab's own PDF pages, no Mira header/footer) ---------- */
.mr-page--lab{display:flex;align-items:center;justify-content:center;background:#fff}
.mr-page--lab canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto}
.mr-lab-msg{padding:.5in;text-align:center;color:var(--mr-muted);font-size:11pt}
.mr-lab-msg a{color:var(--mr-blue)}

/* ---------- Print ---------- */
@page{size:letter;margin:0}
@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important}
  body>header,.report-tools,.bottom-nav,#toast{display:none!important}
  main{max-width:none!important;width:auto!important;margin:0!important;padding:0!important}
  .mr-viewport{padding:0!important}
  .mr{zoom:1!important;gap:0!important;width:8.5in!important}
  .mr-page{box-shadow:none!important;break-after:page;page-break-after:always}
  .mr-page:last-child{break-after:auto;page-break-after:auto}
}

/* v0.7.5: room headings live inside the photo grid so rooms can share a page */
.mr-photos>.mr-sub{grid-column:1/-1;margin:0!important}
.mr-photos>.mr-sub~.mr-sub{margin-top:.06in!important}

/* v0.7.7 */
.mr-toc-row:hover span{text-decoration:underline}
.mr-page{scroll-margin-top:120px}
.mr-flow>.mr-title{margin:.32in 0 .14in!important}
.mr-flow>.mr-title:first-child{margin-top:0!important}

/* v0.8.1 photo markup in report */
.mr-ph{position:relative;height:1.72in;background:#eef2f6}
.mr-ph img{width:100%;height:100%;object-fit:cover}
.mr-photo--mk .mr-ph img{object-fit:contain}
.mr-ph .mk-overlay{position:absolute;inset:0;width:100%;height:100%}
