@font-face{font-family:"Noto Sans Khmer";src:url("fonts/NotoSansKhmer-subset.woff") format("woff");font-weight:400 700;font-style:normal;font-display:swap}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans Khmer",system-ui,sans-serif;background:#f1f3f5;color:#212529;line-height:1.6}
.wrap{max-width:560px;margin:0 auto;padding:16px}
h1{font-size:20px;margin:0 0 12px}
.card{background:#fff;border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
label.f{display:block;font-size:14px;margin:10px 0 4px;font-weight:700}
input[type=text],input[type=tel],textarea,select,input[type=number]{width:100%;padding:10px;border:1px solid #ced4da;border-radius:8px;font:inherit;font-size:16px}
textarea{min-height:80px;resize:vertical}
button{font:inherit;font-size:16px;padding:10px 16px;border:0;border-radius:8px;cursor:pointer;background:#e9ecef}
button:disabled{opacity:.5;cursor:default}
button.primary{background:#1c7ed6;color:#fff}
button.danger{background:#fff0f0;color:#c92a2a}
button.accent{background:#2f9e44;color:#fff}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.row>*{flex:1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hint{font-size:12px;color:#868e96;margin-top:4px;word-break:break-all}
.status{margin-top:10px;font-size:15px;font-weight:700}
.status.ok{color:#2b8a3e}
.status.err{color:#c92a2a}
.preview-bg{background:#dee2e6;padding:16px;border-radius:8px;display:flex;justify-content:center;overflow:auto}
.hidden{display:none!important}

/* ស្លាក (ប្រើទាំងមើលជាមុន និងពេលបោះពុម្ពធម្មតា) */
.label{background:#fff;color:#000;text-align:center;width:var(--w);padding:2mm 1mm;line-height:1.6;word-break:break-word}
.label .name{font-weight:700;font-size:calc(var(--fs) * 1.35);margin-bottom:1mm}
.label .phone{font-weight:700;font-size:calc(var(--fs) * 1.1)}
.label .addr{font-size:var(--fs);white-space:pre-line;margin-top:1mm;text-align:left}
.label .rc{font-size:var(--fs);white-space:pre-line;text-align:left}
.label .sep{border-top:1px dashed #000;margin:2mm 0 1mm}
.label .qr{display:block;margin:2mm auto 0;width:var(--qr);height:auto;image-rendering:pixelated}
.label.bw .qr{filter:grayscale(1) contrast(6)}
.label .cap{font-size:var(--fs);margin-top:1mm}

#printArea{display:none}
@media print{
  html,body{background:#fff!important}
  body>*:not(#printArea){display:none!important}
  #printArea{display:block}
  .label{page-break-after:always;break-after:page;margin:0 auto}
  .label:last-child{page-break-after:auto;break-after:auto}
}
.row.first{margin-top:0}
.mt8{margin-top:8px}
.mt6{margin-top:6px}
.big{font-size:16px}
.thumb{width:120px;border:1px solid #ced4da;border-radius:6px}
input[type=password]{width:100%;padding:10px;border:1px solid #ced4da;border-radius:8px;font:inherit;font-size:16px}

#printArea.measure{display:block;position:absolute;visibility:hidden;left:-9999px;top:0}
