/* Label styles — used by preview and print. Units are physical (mm / pt). */
.lbl {
  --fs: 8pt;
  position: relative; box-sizing: border-box; overflow: hidden;
  background: #fff; color: #1A1A1A; display: flex;
  font-family: 'Noto Sans', 'Noto Sans Tamil', Arial, sans-serif; font-size: var(--fs); line-height: 1.22;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.lbl * { box-sizing: border-box; }
.lbl b { font-weight: 700; }
.lb-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(var(--fs) * .28); padding: 1.6mm 2mm 1.4mm; overflow: hidden; }
.lb-brand { font-size: calc(var(--fs) * .78); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.lb-name { font-family: 'Crimson Pro', Georgia, serif; font-weight: 700; font-size: calc(var(--fs) * 1.75); line-height: 1.02; }
.lb-ta { font-family: 'Noto Sans Tamil', sans-serif; font-weight: 600; font-size: calc(var(--fs) * 1.02); line-height: 1.25; }
.lb-net { font-size: calc(var(--fs) * .9); }
.lb-comp, .lb-dose { font-size: calc(var(--fs) * .78); line-height: 1.25; }
.lb-row { display: flex; gap: 2mm; align-items: flex-end; margin-top: auto; min-height: 0; }
.lb-meta { font-size: calc(var(--fs) * .88); display: flex; flex-direction: column; gap: .3mm; white-space: nowrap; }
.lb-mrp { margin-top: .6mm; display: flex; flex-direction: column; }
.lb-mrp span { font-size: calc(var(--fs) * .66); }
.lb-codes { flex: 1; display: flex; gap: 1.5mm; align-items: flex-end; justify-content: flex-end; min-width: 0; }
.lb-bc { flex: 1; max-width: 42mm; min-width: 16mm; background: #fff; }
.lb-bc svg { display: block; width: 100%; height: auto; }
.lb-qr { width: calc(var(--fs) * 3.4); display: flex; flex-direction: column; align-items: center; flex: none; }
.lb-qr svg { width: 100%; height: auto; display: block; }
.lb-qr span { font-size: calc(var(--fs) * .5); white-space: nowrap; }
.lb-foot { font-size: calc(var(--fs) * .62); color: #333; border-top: .2mm solid var(--c); padding-top: .5mm; line-height: 1.2; }

/* Heritage — vertical colour band on the left */
.lb-side { width: 7mm; flex: none; display: flex; align-items: center; justify-content: center; }
.lb-side span { writing-mode: vertical-rl; transform: rotate(180deg); font-size: calc(var(--fs) * .8); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }

/* Band — colour header */
.lbl-band { flex-direction: column; }
.lb-band { padding: 1.6mm 2mm 1.4mm; flex: none; }
.lb-band .lb-type { font-size: calc(var(--fs) * .7); letter-spacing: .14em; text-transform: uppercase; font-weight: 700; opacity: .9; }
.lbl-band .lb-main { padding-top: 1.2mm; }

/* Minimal / Compact — thin top stripe */
.lbl-minimal, .lbl-compact { flex-direction: column; }
.lb-stripe { height: 2.2mm; flex: none; }
.lb-top { display: flex; }
.lb-chip { font-size: calc(var(--fs) * .66); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .3mm 1.4mm; border-radius: 1mm; }
.lbl-compact .lb-main { flex-direction: row; align-items: stretch; padding: .8mm 1.4mm; gap: 1.5mm; }
.lb-ctext { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: .3mm; }
.lbl-compact .lb-name { font-size: calc(var(--fs) * 1.35); }
.lb-inline { flex-direction: row; gap: .3mm 1.6mm; flex-wrap: wrap; }
.lbl-compact .lb-codes { flex: none; width: 46%; align-items: center; justify-content: center; }
.lbl-compact .lb-bc { max-width: none; min-width: 0; width: 100%; height: 100%; display: flex; align-items: center; }
.lbl-compact .lb-bc svg { width: 100%; height: 100%; }

.lbl-overflow { outline: .6mm dashed #C0392B; outline-offset: -.6mm; }

/* ================= Full-artwork templates ================= */
.lbl-full { display: block; position: relative; color: #1f1f1f; font-family: 'Noto Sans', 'Noto Sans Tamil', 'Noto Sans Devanagari', Arial, sans-serif; }
.lbl-full .fx-svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.fx-z { position: absolute; overflow: hidden; display: flex; flex-direction: column; min-height: 0; }
.fx-ta { font-family: 'Noto Sans Tamil', sans-serif; font-weight: 800; font-size: calc(var(--fs) * 1.7); line-height: 1.25; }
.fx-hi { font-family: 'Noto Sans Devanagari', sans-serif; font-weight: 700; font-size: calc(var(--fs) * 1.45); line-height: 1.3; }
.fx-t1 { font-family: 'Crimson Pro', Georgia, serif; font-weight: 700; font-size: calc(var(--fs) * 3.1); line-height: .95; letter-spacing: .01em; }
.fx-t2 { font-family: 'Crimson Pro', Georgia, serif; font-weight: 700; font-size: calc(var(--fs) * 2.05); line-height: 1; letter-spacing: .02em; }
.fx-claim { text-align: center; }
.fx-claim .c1 { font-size: calc(var(--fs) * 1.15); }
.fx-claim .c2 { font-size: calc(var(--fs) * 1.3); font-weight: 700; line-height: 1.2; }

/* head: logo + two-line brand */
.fx-head { display: flex; align-items: center; justify-content: center; gap: 1.2mm; flex: none; }
.fx-logo { height: calc(var(--fs) * 5.4); width: auto; object-fit: contain; }
.fx-brand { color: var(--maroon); font-family: 'Crimson Pro', Georgia, serif; font-weight: 700; line-height: 1; }
.fx-brand .b1 { font-size: calc(var(--fs) * 2.5); border-bottom: .3mm solid var(--c); padding-bottom: .3mm; }
.fx-brand .b2 { font-size: calc(var(--fs) * 1.45); letter-spacing: .32em; margin-top: .5mm; padding-left: .1em; }
.fx-veg { width: calc(var(--fs) * 2.1); height: calc(var(--fs) * 2.1); flex: none; align-self: flex-start; margin-top: calc(var(--fs) * .6); }
.fx-center { flex-direction: column; gap: .4mm; text-align: center; }

/* left: ingredients */
.fx-left { gap: .6mm; }
.fx-ing-h { font-weight: 700; font-size: calc(var(--fs) * 1.05); letter-spacing: .01em; white-space: nowrap; flex: none; }
.fx-ing { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--tfs); line-height: 1.08; background: #FFF9EC; border: .35mm solid var(--maroon); border-radius: 1.2mm; overflow: hidden; }
.fx-ing th { background: var(--maroon); color: #fff; text-align: left; font-weight: 600; padding: .35mm 1mm; font-size: calc(var(--tfs) * 1.05); white-space: nowrap; }
.fx-ing td { padding: .02mm 1mm; border-bottom: .1mm solid #E8D9B8; white-space: nowrap; }
.fx-ing td:first-child { white-space: normal; }
.fx-ing tr:last-child td { border-bottom: 0; }

/* right: statutory box, notes */
.fx-right { gap: .8mm; }
.fx-type { color: var(--ink); font-weight: 700; font-size: calc(var(--fs) * 1.28); white-space: nowrap; text-align: center; flex: none; }
.fx-infowrap { display: flex; gap: 1mm; align-items: flex-start; flex: none; }
.fx-info { flex: 1; min-width: 0; background: #fff; border: .3mm solid var(--gold); border-radius: 1.6mm; padding: .8mm 1mm .6mm; }
.fx-r { display: grid; grid-template-columns: auto .8em 1fr; font-size: calc(var(--fs) * 1.02); line-height: 1.28; white-space: nowrap; }
.fx-r b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.fx-r span:first-child { min-width: 6.6em; }
.fx-tax { font-size: calc(var(--fs) * .62); text-align: right; margin-top: -.2mm; }
.fx-codes { display: flex; gap: 1mm; align-items: flex-end; margin-top: .6mm; }
.fx-bc { flex: 1; min-width: 0; background: #fff; padding: 0 2.3mm; } /* 2.3 mm quiet zone each side */
.fx-bc svg { display: block; width: 100%; height: calc(var(--fs) * 3); }
.fx-bctxt { font-family: 'Noto Sans', Arial, sans-serif; font-size: calc(var(--fs) * .8); letter-spacing: .25em; text-align: center; line-height: 1.1; }
.fx-badges { width: 19%; display: flex; flex-direction: column; gap: .5mm; align-items: center; flex: none; }
.fx-seal { width: 100%; height: auto; display: block; }
.fx-qr { width: 92%; flex: none; display: flex; flex-direction: column; align-items: center; }
.fx-qr svg { width: 100%; height: auto; background: #fff; }
.fx-qr span { font-size: calc(var(--fs) * .5); white-space: nowrap; }
.fx-note { background: #FFF9EC; border: .25mm solid var(--gold); font-size: calc(var(--fs) * .98); line-height: 1.3; padding: 0 1.2mm .5mm 0; flex: none; }
.fx-pill { display: inline-block; background: var(--maroon); color: #fff; font-weight: 600; padding: .2mm 1.6mm; margin-right: 1mm; border-radius: 0 0 1.4mm 0; }
.fx-note:not(.fx-mfr):not(.fx-care) { padding-left: 0; }
.fx-mfr .fx-co { font-family: 'Crimson Pro', Georgia, serif; font-weight: 700; color: var(--maroon); font-size: calc(var(--fs) * 1.65); line-height: 1.1; padding: .4mm 1.2mm 0; }
.fx-mfr > div:last-child { padding: 0 1.2mm; }
.fx-care { padding: .5mm 1.2mm; }
.fx-tag { position: absolute; display: flex; line-height: 1; align-items: center; justify-content: center; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: calc(var(--fs) * 1.3); color: var(--on); white-space: nowrap; overflow: hidden; }

/* ---- 1. Arch ---- */
.t-arch .fx-mid { align-items: center; }
.t-arch .fx-head { height: calc(var(--top) - 1mm); }
.t-arch .fx-plate { background: linear-gradient(180deg, #F3DB7E, #E7C75C); color: var(--maroon); padding: 1mm 3mm .8mm; text-align: center; box-shadow: 0 .6mm 1.2mm rgba(0,0,0,.25); margin: .4mm 0 1.2mm; max-width: 100%; }
.t-arch .fx-on { text-align: center; display: flex; flex-direction: column; gap: .8mm; padding: 0 2mm 0 5mm; }
.t-arch .fx-claim .c2 { font-family: 'Noto Sans', sans-serif; }

/* ---- 2. Frame ---- */
.t-frame .fx-mid { align-items: center; justify-content: space-between; }
.t-frame .fx-frame { border: .9mm solid var(--gold); outline: .3mm solid #F3DB7E; outline-offset: -1.6mm; border-radius: 3mm; padding: 1.6mm 4mm 1.8mm; text-align: center; color: #F2D36B; box-shadow: 0 .5mm 1.5mm rgba(0,0,0,.25); }
.t-frame .fx-t2 { color: #F6DE88; }
.t-frame .fx-claim { color: var(--maroon); }

/* ---- 3. Olai Chuvadi ---- */
.t-olai { color: #3E2A12; }
.t-olai .fx-mid { align-items: center; justify-content: space-between; text-align: center; }
.t-olai .fx-olai-t { color: #4A2C0E; }
.t-olai .fx-t1 { font-family: 'Cinzel', 'Crimson Pro', serif; letter-spacing: .04em; }
.t-olai .fx-t2 { font-family: 'Cinzel', 'Crimson Pro', serif; color: var(--ink); }
.t-olai .fx-orn { color: var(--gold); font-size: calc(var(--fs) * 1.3); line-height: 1; }
.t-olai .fx-ta { font-size: calc(var(--fs) * 2.1); color: #4A2C0E; }
.t-olai .fx-ing { background: rgba(255,248,225,.7); border-color: #6B4A1E; }
.t-olai .fx-ing th { background: #6B4A1E; }
.t-olai .fx-info, .t-olai .fx-note { background: rgba(255,250,235,.85); border-color: #9C7A2B; }
.t-olai .fx-pill { background: #6B4A1E; }
.t-olai .fx-tag { color: #4A2C0E; letter-spacing: .12em; }

/* ---- 4. Kolam ---- */
.t-kolam .fx-mid { align-items: center; text-align: center; justify-content: space-between; }
.t-kolam .fx-medal { height: calc(var(--fs) * 6.2); display: flex; align-items: center; justify-content: center; flex: none; }
.t-kolam .fx-medal .fx-logo { height: 100%; }
.t-kolam .fx-brand .b1 { font-size: calc(var(--fs) * 1.9); }
.t-kolam .fx-kt, .t-botanical .fx-kt { color: var(--ink); }
.t-kolam .fx-ing th, .t-kolam .fx-pill { background: var(--c); color: var(--on); }
.t-kolam .fx-ing { border-color: var(--c); }
.t-kolam .fx-claim { color: var(--maroon); }

/* ---- 5. Botanical ---- */
.t-botanical .fx-bot { display: flex; height: 100%; gap: 1mm; align-items: stretch; }
.t-botanical .fx-bot-art { width: 30%; display: flex; align-items: center; }
.t-botanical .fx-herb { width: 100%; height: 100%; }
.t-botanical .fx-bot-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 1mm 1mm 1mm 0; }
.t-botanical .fx-head { justify-content: flex-start; }
.t-botanical .fx-claim { text-align: left; color: var(--ink); }
.t-botanical .fx-ing th, .t-botanical .fx-pill { background: var(--c); color: var(--on); }
.t-botanical .fx-ing { border-color: var(--c); background: #fff; }
.t-botanical .fx-tag { color: var(--ink); letter-spacing: .14em; font-size: calc(var(--fs) * 1.05); }

/* ---- 6. Clinical ---- */
.t-clinical { font-family: 'Noto Sans', Arial, sans-serif; }
.t-clinical .fx-mid { justify-content: space-between; padding-right: 1mm; }
.t-clinical .fx-head { justify-content: flex-start; }
.t-clinical .fx-brand { color: var(--ink); font-family: 'Noto Sans', sans-serif; }
.t-clinical .fx-brand .b1 { border: 0; font-size: calc(var(--fs) * 1.9); }
.t-clinical .fx-brand .b2 { letter-spacing: .2em; font-size: calc(var(--fs) * 1.05); }
.t-clinical .fx-ct { color: var(--ink); }
.t-clinical .fx-t1, .t-clinical .fx-t2 { font-family: 'Noto Sans', sans-serif; font-weight: 800; letter-spacing: -.01em; }
.t-clinical .fx-t2 { font-weight: 500; color: #555; }
.t-clinical .fx-claim { text-align: left; border-left: .8mm solid var(--c); padding-left: 1.6mm; }
.t-clinical .fx-ing { background: #fff; border: .2mm solid #CBD2CE; border-radius: .6mm; }
.t-clinical .fx-ing th { background: var(--c); color: var(--on); }
.t-clinical .fx-ing tr:nth-child(even) td { background: #F4F7F5; }
.t-clinical .fx-info { border-color: #CBD2CE; border-radius: .6mm; }
.t-clinical .fx-type { text-align: left; }
.t-clinical .fx-note { background: none; border: 0; border-left: .5mm solid var(--c); padding-left: 1.2mm; }
.t-clinical .fx-pill { background: none; color: var(--ink); padding: 0; border-radius: 0; font-weight: 800; }
.t-clinical .fx-mfr .fx-co { color: var(--ink); font-family: 'Noto Sans', sans-serif; font-size: calc(var(--fs) * 1.25); padding-left: 0; }
.t-clinical .fx-mfr > div:last-child, .t-clinical .fx-care { padding-left: 0; }
.t-clinical .fx-tag { color: #6b746f; font-weight: 600; font-size: calc(var(--fs) * .95); letter-spacing: .1em; }

/* ---- 7. Premium ---- */
.t-premium .fx-mid { align-items: center; text-align: center; justify-content: space-between; }
.t-premium .fx-brand { color: var(--ink); }
.t-premium .fx-brand .b1 { border: 0; font-family: 'Cinzel', serif; font-size: calc(var(--fs) * 1.6); letter-spacing: .1em; }
.t-premium .fx-brand .b2 { font-family: 'Cinzel', serif; font-size: calc(var(--fs) * 1.05); letter-spacing: .45em; }
.t-premium .fx-logo { height: calc(var(--fs) * 4); }
.t-premium .fx-hair { width: 55%; height: .25mm; background: var(--gold); flex: none; }
.t-premium .fx-pt { color: var(--ink); }
.t-premium .fx-t1 { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .08em; font-size: calc(var(--fs) * 2.7); }
.t-premium .fx-t2 { font-family: 'Cinzel', serif; font-weight: 500; letter-spacing: .4em; font-size: calc(var(--fs) * 1.4); color: var(--gold); }
.t-premium .fx-claim .c2 { font-family: 'Crimson Pro', serif; font-style: italic; font-weight: 600; color: #333; }
.t-premium .fx-ing { background: transparent; border: .2mm solid var(--gold); border-radius: 0; }
.t-premium .fx-ing th { background: transparent; color: var(--ink); border-bottom: .25mm solid var(--gold); letter-spacing: .06em; }
.t-premium .fx-info { border-color: var(--gold); border-radius: 0; border-width: .2mm; }
.t-premium .fx-note { background: none; border: 0; border-top: .2mm solid var(--gold); padding-left: 0; }
.t-premium .fx-pill { background: none; color: var(--gold); font-weight: 700; padding: 0; text-transform: uppercase; letter-spacing: .08em; }
.t-premium .fx-mfr .fx-co { padding-left: 0; color: var(--ink); } .t-premium .fx-mfr > div:last-child, .t-premium .fx-care { padding-left: 0; }
.t-premium .fx-tag { color: var(--gold); letter-spacing: .3em; font-weight: 600; font-size: calc(var(--fs) * 1.02); font-family: 'Cinzel', serif; }
.t-kolam .fx-tag { padding: 0 8%; }
