:root{--bg:#fff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#1c1c1c}}
:root[data-theme="dark"]{--bg:#1c1c1c}
html,body{height:100%}
body{background:#f3f4f6;color:#111;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.report-page{width:210mm;min-height:148mm;background:#fff;color:#000;border:2px solid #000;padding:10mm;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box}
.diamond-jewelry-page{position:relative;width:1536px;height:966px;min-width:1536px;min-height:966px;padding:0;border:0;overflow:hidden;background:#fff;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box}
.jewelry-brand-header{position:absolute;left:117px;top:27px;width:656px;height:208px;object-fit:contain}
.jewelry-divider{position:absolute;left:397px;top:28px;height:178px;border-left:4px solid #292929}
.jewelry-lab-name{position:absolute;left:416px;top:26px;color:#494949;font-family:'Arial Narrow',Arial,sans-serif;font-size:57px;font-stretch:condensed;font-weight:800;line-height:68px;letter-spacing:-1.5px}
.jewelry-qr{position:absolute;left:962px;top:56px;width:156px;height:156px;background:#fff}
.jewelry-qr img,.jewelry-qr canvas{width:156px!important;height:156px!important}
.jewelry-title{position:absolute;left:120px;top:240px;width:1170px;text-align:center;font-size:43px;font-weight:800;line-height:52px;letter-spacing:.15px}
.jewelry-summary{position:absolute;left:91px;top:294px;display:grid;grid-template-columns:385px 1fr;width:1354px;font-size:31px;line-height:42px;font-weight:700}
.jewelry-description{position:absolute;left:91px;top:340px;width:1354px;height:94px;overflow:hidden;font-size:30px;line-height:43px;font-weight:700}
.description-value{display:inline}
.jewelry-fields{position:absolute;left:91px;top:434px;width:1020px;height:322px;font-size:30px;line-height:40px;font-weight:700;overflow:hidden}
.jewelry-field{position:absolute;left:0;display:grid;grid-template-columns:385px 1fr;column-gap:0;width:1010px;min-height:40px}
.jewelry-value{overflow-wrap:anywhere;white-space:normal}
.jewelry-photo-box{position:absolute;left:1175px;top:511px;width:284px;height:284px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.jewelry-photo-box.has-photo{background:#000}
.jewelry-photo{width:100%;height:100%;object-fit:contain}
.jewelry-comment{position:absolute;left:91px;top:781px;max-width:1450px;height:90px;overflow:hidden;font-size:37px;line-height:46px;font-weight:700}
.jewelry-branding{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);font-family:'Times New Roman',serif;font-weight:700;color:blue;white-space:nowrap}
.jewelry-branding.brand-top-right{left:calc(962px + 156px + 184px);top:calc(56px + 156px - .8em);bottom:auto;transform:translateX(-50%)}
.report-branding{position:absolute;left:50%;bottom:2mm;transform:translateX(-50%);font-family:'Times New Roman',serif;font-weight:700;color:blue;white-space:nowrap}
.report-branding.brand-top-right{left:auto;right:10mm;top:calc(30mm - .8em);bottom:auto;text-align:right;transform:none}
.jewelry-style{position:absolute;left:1290px;top:88px;font-size:20px;font-weight:700}
.import-records{max-height:360px}
.import-records table{min-width:760px}
.import-records td:nth-child(4){max-width:420px;white-space:normal}
.import-panel select{max-width:min(100%,360px)}
.rgrid{display:grid;grid-template-columns:38mm 1fr;column-gap:4mm;row-gap:2.2mm;font-size:11pt}
.rlabel{font-weight:700}
#app input, #app textarea, #app select{background:#fff !important;color:#111 !important;border-color:#d1d5db !important}
#app input::placeholder, #app textarea::placeholder{color:#9ca3af !important}
table{width:100%;border-collapse:collapse}
th,td{border:1px solid #ddd;padding:6px 8px;font-size:13px;text-align:left}
#preview-wrap{width:100%;overflow:auto}
