/* LavGeo workspace: start page, projects, upload/check/choose steps, report, pay dialog. Uses the main page's colours. */
.howto{margin:0 0 14px;padding-left:20px;display:grid;gap:6px}
.goal .btn{margin-top:auto}
.card.soon{opacity:.6}
a.card.pj{text-decoration:none;color:inherit}
a.card.pj:hover{border-color:var(--earth)}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:700px){.row3{grid-template-columns:1fr}}
.ws-steps button{font:500 .78rem var(--mono);padding:6px 10px;border-radius:20px;border:1px solid var(--rule);color:var(--muted);background:transparent;cursor:pointer}
.ws-steps button.on{border-color:var(--earth);color:var(--earth)}
.ws-steps button.done{background:var(--earth);border-color:var(--earth);color:#fff}
#wsMsg{margin-bottom:16px}
#wsBody .card{margin-bottom:16px}
.ws-nav{margin-top:8px}
.drop{display:flex;align-items:center;gap:12px;border:2px dashed var(--rule);border-radius:10px;padding:22px;margin:12px 0;cursor:pointer;font-weight:400}
.drop.over{border-color:var(--earth);background:var(--sand)}
.drop input{width:auto;border:0;padding:0}
.chip{border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:20px;padding:6px 14px;font:600 .9rem var(--body);cursor:pointer}
.chip.on{border-color:var(--earth);color:var(--earth)}
.bh-tabs{margin-bottom:12px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}
.dot.ok{background:var(--good)}.dot.warn{background:var(--warn)}.dot.bad{background:#C0392B}
.hgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:10px 0 14px}
@media (max-width:860px){.hgrid{grid-template-columns:repeat(2,1fr)}}
.hgrid label{font-size:.82rem}
.hgrid input{padding:7px 8px;font-size:.92rem}
.linkbtn{background:none;border:0;color:var(--muted);cursor:pointer;font:600 .85rem var(--body)}
.card .top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}
table.grid-in{border-collapse:collapse;min-width:980px;width:100%}
table.grid-in th{font:600 .74rem var(--mono);text-align:left;padding:4px;color:var(--muted);white-space:nowrap}
table.grid-in td{padding:1px 2px;border-top:1px solid var(--rule)}
table.grid-in input{padding:5px 6px;font-size:.88rem;border-radius:4px;border-width:1px}
table.grid-in td.c-n{width:64px}table.grid-in td.c-t{width:76px}table.grid-in td.c-w{min-width:240px}
tr.r-bad td{background:rgba(192,57,43,.08)}tr.r-warn td{background:rgba(178,107,0,.08)}
tr.r-note td{border-top:0;font-size:.84rem;padding:2px 6px 8px}
.badline{color:#C0392B}.warnline{color:var(--warn)}.okline{color:var(--good)}
.rule{font:500 .7rem var(--mono);color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:0 4px;white-space:nowrap}
.ck-sum p{margin:4px 0;font-size:.92rem}
.units summary{cursor:pointer;font-weight:600;margin-top:10px}
table.tbl{border-collapse:collapse;width:100%;font-size:.92rem}
table.tbl th,table.tbl td{border:1px solid var(--rule);padding:5px 7px;text-align:left;vertical-align:top}
table.tbl th{background:var(--paper);font-weight:600}
table.tbl.small{font-size:.84rem}
.tick{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:10px 0}
.tick input{width:auto;margin-top:5px}
/* report */
.rp-bar{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--rule);padding:10px 0}
.rp{position:relative;padding:24px 0 60px}
.rp-page{background:#fff;color:#1B1F24;border:1px solid var(--rule);border-radius:8px;padding:28px 32px;margin:0 auto 18px;max-width:900px;position:relative}
.rp-page .hint{color:#5B6168}
.rp-page table.tbl th{background:#F4F5F2}.rp-page table.tbl th,.rp-page table.tbl td{border-color:#D8D9D2}
.rp-cover{min-height:70vh;display:flex;flex-direction:column;gap:14px}
.rp-brand{font:700 2rem var(--display)}.rp-brand b{color:#8B5A2B}.rp-brand span{color:#1F5FCF}
.rp-title{font-size:clamp(1.8rem,4vw,2.8rem)}
.rp-sub{color:#5B6168;font-size:1.05rem}
.rp-meta{max-width:560px}
.rp-sign{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-top:auto;flex-wrap:wrap}
.sigline{width:260px;border-bottom:1px solid #1B1F24;height:46px;margin-bottom:6px}
.rp-qrbox{text-align:center;max-width:220px}.rp-qr{width:120px;height:120px;margin:0 auto 6px}.rp-qr svg{width:100%;height:100%}
.rp-h{font-size:1.5rem;text-transform:none;margin:4px 0 12px;color:#8B5A2B}
.rp-page h3{font-size:1.2rem;margin:16px 0 6px}
.rp-two{display:grid;grid-template-columns:1fr 240px;gap:16px;align-items:start}
@media (max-width:700px){.rp-two{grid-template-columns:1fr}.rp-page{padding:18px 14px}}
.rp-two .chart{width:100%;max-width:320px}
.rp-kv th{width:42%}
.rp-checks summary{cursor:pointer;font-weight:600}
.rp-checks ul{margin:6px 0;padding-left:20px;font-size:.88rem}
.rp-basis{background:#F4F5F2;border-radius:6px;padding:10px 14px;margin:12px 0;font-size:.88rem}
.rp-basis ul{margin:4px 0;padding-left:18px}
.rp-lock{border:1.5px dashed #8B5A2B;border-radius:8px;padding:16px;margin:12px 0;background:#FBF6EC}
.rp-foot{margin-top:18px;border-top:1px solid #D8D9D2;padding-top:8px}
.rp-wm{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;font:700 clamp(1.4rem,4vw,2.6rem) var(--display);color:rgba(192,57,43,.16);transform:rotate(-28deg);text-align:center;padding:0 10%;letter-spacing:.04em}
body:not([data-view="report"]) .rp-wm{display:none}
/* pay dialog */
dialog.paydlg{border:1px solid var(--rule);border-radius:12px;padding:22px;max-width:560px;width:calc(100% - 24px);background:var(--surface);color:var(--ink)}
dialog.paydlg::backdrop{background:rgba(0,0,0,.45)}
.pay-x{position:absolute;right:10px;top:8px}.pay-x button{background:none;border:0;font-size:1.2rem;cursor:pointer;color:var(--muted)}
button.card.pick{text-align:left;cursor:pointer;border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);font:inherit;padding:12px 14px;border-radius:8px}
button.card.pick.on{border-color:var(--earth);box-shadow:0 0 0 2px var(--earth) inset}
.pick .price{font:700 1.2rem var(--display);color:var(--earth)}
.qrpay{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;margin:10px 0}
@media (max-width:520px){.qrpay{grid-template-columns:1fr;justify-items:center;text-align:center}}
.qrpay img{border-radius:8px;border:1px solid var(--rule);background:#fff}
.amt{font-size:2rem;font-weight:700;color:var(--earth);margin:2px 0 8px}
#rcForm{display:grid;gap:10px;margin-top:6px}
@media print{
  header.site,footer,.noprint,.rp-bar,.rp-lock,#rpMsg{display:none!important}
  body{background:#fff}
  .rp{padding:0}.rp-page{border:0;border-radius:0;max-width:none;margin:0;padding:0 0 10mm;page-break-after:always}
  .rp-cover{min-height:250mm}
  .rp-wm{position:fixed;color:rgba(192,57,43,.13)}
  .tscroll{overflow:visible}
  details.rp-checks>summary{list-style:none}
  @page{size:A4;margin:16mm 14mm}
}
/* watermark styles by tier (the PDF from /api/export carries the same) */
.rp.wm-heavy .rp-page,.rp.wm-learner .rp-page{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='140'%3E%3Cg opacity='.07' transform='translate(20 30)'%3E%3Crect width='26' height='26' rx='6' fill='%23CDB58E'/%3E%3Crect x='8' width='3' height='20' fill='%231F5FCF'/%3E%3Ctext x='32' y='19' font-family='Arial' font-weight='700' font-size='16' fill='%238B5A2B'%3ELAV%3Ctspan fill='%231F5FCF'%3EGeo%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E")}
.rp.wm-learner .rp-wm{color:rgba(192,57,43,.11);font-size:clamp(1.2rem,3vw,2rem)}
.rp.wm-review .rp-page:not(.rp-cover){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg opacity='.045'%3E%3Crect width='64' height='64' rx='14' fill='%23CDB58E'/%3E%3Crect x='20' width='7' height='50' fill='%231F5FCF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:280px}
.rp-band{margin-top:18px;padding:6px 10px;border-radius:4px;background:#EEF3FC;color:#1F5FCF;font:600 .78rem var(--body)}
.rp-band.warm{background:#FBF6EC;color:#8B5A2B}
.rp-teach{border-left:3px solid #8B5A2B;background:#FBF6EC;padding:10px 14px;border-radius:4px;margin:4px 0 14px;font-size:.92rem}
.rp-teach b{color:#8B5A2B;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.rp.noteach .rp-teach{display:none}
.teachsw{margin:0;align-items:center}.teachsw input{margin:0}
.g4{grid-template-columns:repeat(4,1fr)}@media (max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.g4{grid-template-columns:1fr}}
/* the browser print is not the copy of record: send people to Download PDF */
@media print{ body[data-view="report"] .rp{display:none!important} body[data-view="report"] .rp-bar{display:block!important} body[data-view="report"] .rp-bar *{display:none!important}
  body[data-view="report"] .rp-bar::after{content:"Use “Download PDF” on lavgeo.com: the PDF carries the Report ID and the verification QR.";display:block;font:16px Arial;padding:40px} }
/* full-report additions */
.sitemap{height:300px;border-radius:8px;border:1px solid var(--rule);margin:10px 0;background:var(--paper)}
.drop.small{padding:12px;margin:8px 0}
h4{margin:6px 0;font:700 1rem var(--body)}
.rp-h3{font:700 1.05rem var(--body);margin:16px 0 6px;text-transform:none;color:#1B1F24}
.rp-page p{margin:6px 0}
.rp-page blockquote{margin:4px 0 10px;padding:4px 12px;border-left:3px solid #D8D9D2;color:#33383E;font-size:.93rem}
.rp-page ol,.rp-page ul{margin:6px 0 10px;padding-left:22px}
.tcap{font:700 .82rem var(--body);margin:12px 0 2px}
table.tbl tr.grp td{background:#FBF6EC;color:#8B5A2B;font-weight:700}
.rp-fig{margin:12px auto;text-align:center}
.rp-fig svg{max-width:100%;height:auto}
.rp-fig figcaption{font-size:.82rem;color:#5B6168;margin-top:4px}
.figslot.vic{height:320px;border:1px solid #1B1F24;border-radius:4px}
.mgbwrap{position:relative;display:inline-block;max-width:100%}.mgbwrap img{max-width:100%;display:block;border:1px solid #1B1F24}
.mgbpin{position:absolute;width:14px;height:14px;border-radius:50%;background:#D55E00;border:2px solid #000;transform:translate(-50%,-50%)}
.mgbcredit{position:absolute;right:0;bottom:0;background:#fffd;font-size:.7rem;padding:1px 4px}
.rp-signblock{margin-top:24px}.rp-signblock .sigline{margin:28px 0 6px}
