:root{--ink:#172c2b;--muted:#647471;--green:#183f39;--gold:#b9934b;--line:#dce4df;--paper:#f5f6f2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,-apple-system,sans-serif}header{background:var(--green);color:#fff;padding:20px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:#fff;text-decoration:none;font-size:23px;letter-spacing:3px;font-weight:650}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#d7c195}.gem{color:#d7b879;font-size:30px;float:left;margin-right:12px}nav{display:flex;gap:8px;overflow:auto;padding:12px 5%;background:white;border-bottom:1px solid var(--line);align-items:center}nav a{white-space:nowrap;color:var(--muted);padding:9px 14px;text-decoration:none;border-radius:7px;font-size:13px}nav a.active{background:var(--green);color:white}nav form{margin-left:auto}main{max-width:1300px;margin:auto;padding:32px 5%}.eyebrow{font-size:10px;color:var(--gold);letter-spacing:2px;font-weight:bold}h1{font-family:Georgia,serif;font-size:33px;line-height:1.2;margin:8px 0 26px}h2{font-size:18px;margin:0 0 18px}h3{margin-top:0}p{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:20px}.narrow{max-width:750px;margin:0 auto 20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:20px}.stat span{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:25px;margin-top:12px;overflow-wrap:anywhere}.stat small{color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}input,select,textarea{width:100%;padding:12px;border:1px solid #cbd6d1;border-radius:7px;background:white;color:var(--ink);font:inherit;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #b9934b55;border-color:var(--gold)}button,.button{display:inline-block;border:0;border-radius:7px;background:var(--green);color:white;padding:12px 18px;cursor:pointer;font:600 13px system-ui;text-decoration:none}button:disabled{opacity:.5;cursor:wait}.quiet{background:#edf1ec;color:var(--green)}.danger{background:#883c3c}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.toolbar label{flex:1;min-width:130px}.badge{font:600 10px system-ui;background:#eaf0eb;padding:5px 8px;border-radius:20px;color:var(--green)}header .badge{background:#ffffff20;color:white}.notice,.error{padding:15px;border-radius:8px;margin-bottom:20px;background:#e4f0e6;color:#235533}.error{background:#faeaea;color:#8f3434}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #edf0ed;font-size:13px}td a{color:var(--green);font-weight:600}tr:last-child td{border:0}.muted{color:var(--muted);font-size:12px}.photo{width:100%;max-height:360px;object-fit:contain;border-radius:8px;background:var(--paper)}.details{display:grid;grid-template-columns:1fr 2fr;gap:24px}.kv{display:grid;grid-template-columns:1fr 1fr;gap:15px}.kv span{display:block;color:var(--muted);font-size:11px}.kv b{font-size:14px}.poslayout{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.result{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:14px 0}.result strong,.result small{display:block}.cartprice{width:110px;padding:7px}.total{font-size:26px;font-weight:bold;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.labels{display:flex;flex-wrap:wrap;gap:10px}.tag{border:1px solid #aaa;display:flex;align-items:center;gap:8px;width:65mm;min-height:30mm;padding:3mm;color:#000;font-size:11px;break-inside:avoid}.tag img,.tag canvas{width:23mm;height:23mm}.tag b{display:block}.tag small{font-size:8px}.invoice{max-width:800px}.invoicebrand{font:26px Georgia;color:var(--green)}.split{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}footer{text-align:center;color:var(--muted);font-size:10px;padding:25px}.hidden{display:none}.auditlist{white-space:normal}.login{max-width:420px;margin:auto}.login label{margin-bottom:15px}@media(max-width:850px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.poslayout,.details{grid-template-columns:1fr}.grid{gap:14px}main{padding:25px 4%}header{padding:16px 4%}header>div{font-size:11px}.brand{font-size:19px}nav{padding:10px 4%}.panel{padding:18px}}@media(max-width:500px){.grid,.kv{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:21px}h1{font-size:29px}}@media print{header,nav,footer,.pageheading,.noprint,.notice{display:none!important}body,main{background:white;padding:0;margin:0;color:black}main{max-width:none}.panel{border:0;margin:0;padding:0;box-shadow:none}.invoice{max-width:none}.labels{gap:3mm}.tag{border:0}a{color:black;text-decoration:none}.tablewrap{overflow:visible}table{white-space:normal}button{display:none}}

/* Barcode tags: 10-module quiet zones are included in the SVG. */
.tag{display:block;width:65mm;height:30mm;padding:2mm;overflow:hidden;background:#fff}.tag .barcode{display:block;width:61mm;height:11mm;margin-bottom:1mm;shape-rendering:crispEdges}.tag b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag small{font-size:8px}.tag>div{line-height:1.15;font-size:9px}

/* Dual-code labels. QR quiet zone is white padding around the symbol. */
.mode-both .tag{height:40mm}.taglower{display:flex;align-items:center;gap:2mm}.tag .qr{flex:0 0 auto;padding:2mm;background:white}.tag .qr canvas,.tag .qr img{display:block;width:18mm;height:18mm}.tagdetails{min-width:0;flex:1;overflow-wrap:anywhere}.tagdetails b{white-space:normal;max-height:9mm;overflow:hidden}.mode-barcode .qr{display:none}.mode-qr .barcode{display:none}.mode-qr .taglower{height:26mm}.mode-qr .tag .qr canvas,.mode-qr .tag .qr img{width:20mm;height:20mm}

/* Fold-over jewellery roll: 43mm blank left, printable faces 27mm right. */
.compactface{display:none}.mode-jewellery{display:block;--tagoffset:0mm}.mode-jewellery .tag{position:relative;display:block;width:70mm;height:25mm;padding:0;margin:0;border:0;background:white;overflow:hidden}.mode-jewellery .largecontent{display:none}.mode-jewellery .compactface{position:absolute;left:calc(43mm + var(--tagoffset));width:27mm;height:10mm;display:flex;align-items:center;padding:0.25mm;overflow:hidden;box-sizing:border-box;color:#000}.compactqr{top:2mm}.compactbar{top:12mm;flex-direction:column;justify-content:center;gap:0.25mm}.mode-jewellery .smallqr{padding:1mm;flex:none}.mode-jewellery .smallqr img,.mode-jewellery .smallqr canvas{width:5.25mm;height:5.25mm;display:block}.mode-jewellery .compacttext{font:5.5pt/1.15 Arial,sans-serif;min-width:0;flex:1}.mode-jewellery .compacttext b{font:700 5pt Arial,sans-serif;max-height:none;white-space:nowrap}.compacttext span{display:block;white-space:nowrap}.mode-jewellery .smallbarcode{width:19.25mm;height:5mm;margin:0;flex:none;shape-rendering:crispEdges}.mode-jewellery .compactbar small{font:5pt/1 Arial,sans-serif;letter-spacing:0.2mm}
@media print{.mode-jewellery .tag{margin:0;break-after:page;page-break-after:always}.mode-jewellery .tag:last-child{break-after:auto;page-break-after:auto}.mode-jewellery{width:70mm}.mode-jewellery .tag{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* 70 x 25 mm driver stock; one complete backing pitch per printed page.
   Right-hand 27 mm faces occupy x=43..70 mm and y=2..22 mm. */
@media print {
  @page { size:70mm 25mm; margin:0; }
  html,body,main,.panel { width:70mm!important; min-width:0!important; max-width:70mm!important; margin:0!important; padding:0!important; }
  .labels.mode-jewellery { display:block!important; width:70mm!important; margin:0!important; padding:0!important; gap:0!important; }
  .mode-jewellery .tag { width:70mm!important; height:25mm!important; margin:0!important; padding:0!important; break-inside:avoid; page-break-inside:avoid; break-after:page; page-break-after:always; }
  .mode-jewellery .tag:last-child { break-after:auto; page-break-after:auto; }
  .mode-jewellery .compactface { transform:none!important; }
}

/* 70x25 Chrome preview fix v2: isolate tag from dashboard layout. */
@media print {
  @page { size:70mm 25mm; margin:0; }
  html, body { width:70mm!important; min-height:0!important; height:auto!important; overflow:visible!important; }
  main { display:block!important; width:70mm!important; max-width:none!important; padding:0!important; margin:0!important; }
  main > .panel { display:block!important; width:70mm!important; max-width:none!important; padding:0!important; margin:0!important; border:0!important; overflow:visible!important; }
  .labels.mode-jewellery { display:block!important; position:static!important; width:70mm!important; overflow:visible!important; }
  .labels.mode-jewellery > .tag { display:block!important; position:relative!important; box-sizing:border-box!important; width:69.5mm!important; height:24.5mm!important; margin:0!important; padding:0!important; overflow:visible!important; page-break-inside:avoid!important; break-inside:avoid!important; page-break-after:always; break-after:page; }
  .labels.mode-jewellery > .tag:last-child { page-break-after:auto!important; break-after:auto!important; }
  .labels.mode-jewellery .compactface { display:flex!important; position:absolute!important; left:calc(42mm + var(--tagoffset))!important; width:27mm!important; height:10mm!important; overflow:hidden!important; visibility:visible!important; color:#000!important; }
  .labels.mode-jewellery .compactqr { top:2mm!important; }
  .labels.mode-jewellery .compactbar { top:12mm!important; }
  .labels.mode-jewellery .compactface svg, .labels.mode-jewellery .compactface canvas, .labels.mode-jewellery .compactface img { visibility:visible!important; }
}

/* V3: the original .tag has min-height:30mm, which overflows 25mm paper.
   Force the compact jewellery tag below the 25mm page pitch. */
@media print {
  .labels.mode-jewellery > .tag {
    min-height:0!important;
    max-height:24mm!important;
    height:24mm!important;
    overflow:hidden!important;
    break-after:auto!important;
    page-break-after:auto!important;
  }
  .labels.mode-jewellery > .tag:not(:last-child) {
    break-after:page!important;
    page-break-after:always!important;
  }
  .labels.mode-jewellery .compactface { left:calc(42mm + var(--tagoffset))!important; }
}

/* V4: printable face calibration. Keep one page per 25mm pitch. */
@media print {
  .labels.mode-jewellery > .tag { width:69mm!important; height:24mm!important; min-height:0!important; max-height:24mm!important; overflow:hidden!important; }
  .labels.mode-jewellery .compactface { left:calc(43mm + var(--tagoffset, 0mm))!important; width:26mm!important; transform:translateY(var(--tag-yoffset, 0mm))!important; }
  .labels.mode-jewellery .compactqr { top:2mm!important; }
  .labels.mode-jewellery .compactbar { top:12mm!important; }
  .labels.mode-jewellery.calibration .compactface { outline:0.35mm solid black!important; outline-offset:-0.5mm; }
  .labels.mode-jewellery.calibration .compactface::after { content:""; position:absolute; right:0.5mm; top:0.5mm; width:1.5mm; height:1.5mm; background:#000; }
  .labels.mode-jewellery.calibration .compactface > * { visibility:hidden!important; }
}


/* V18: Larger jewellery PRINT TAGS layout; preserve 70x25mm calibration. */
.mode-jewellery .smallqr { padding:0.45mm!important; }
.mode-jewellery .smallqr img,
.mode-jewellery .smallqr canvas { width:7mm!important; height:7mm!important; }
.mode-jewellery .compacttext { font:7pt/1.06 Arial,sans-serif!important; min-width:0!important; letter-spacing:-0.12mm; }
.mode-jewellery .compacttext b { font:700 7.2pt/1.05 Arial,sans-serif!important; white-space:nowrap!important; }
.mode-jewellery .compacttext span { white-space:nowrap!important; }
.mode-jewellery .smallbarcode { width:19.25mm!important; height:8mm!important; margin:0!important; flex:none!important; }
.mode-jewellery .compactbar { gap:0!important; padding:0.1mm!important; }
.mode-jewellery .compactbar small { font:6pt/1 Arial,sans-serif!important; letter-spacing:0.1mm!important; }
@media print {
  .labels.mode-jewellery .compactqr { top:2mm!important; }
  .labels.mode-jewellery .compactbar { top:12mm!important; }
  .labels.mode-jewellery .compactface { left:calc(43mm + var(--tagoffset,0mm))!important; width:26mm!important; height:10mm!important; transform:translateY(var(--tag-yoffset,0mm))!important; }
}


/* PREMIUM 2026 · Visual UI only. V18 jewellery tag geometry above is intentionally unchanged. */
@media screen {
 :root{--ink:#102d25;--muted:#66766f;--green:#073b2b;--gold:#bd9852;--line:#e1e9e3;--paper:#f7f8f3}
 body{background:linear-gradient(135deg,#f4f7f1 0%,#faf9f4 55%,#f3f6f1 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;color:#153b2d;min-height:100vh}
 header{background:linear-gradient(110deg,#042b20,#064d35 70%,#0a3a2b);padding:12px clamp(18px,4vw,65px);box-shadow:0 5px 25px #06342424;border-bottom:3px solid #c49b4f}
 .brand{display:flex;align-items:center;gap:13px;letter-spacing:2px;font-weight:750;font-size:20px;line-height:1.2}
 .brand-logo{height:54px;width:56px;object-fit:cover;border:1px solid #d3b264;border-radius:11px;box-shadow:0 0 0 3px #ffffff15}
 .brand-words{display:block}.brand small{margin-top:5px;font-size:9px;letter-spacing:2.3px;color:#e3c88e}
 header .badge{background:#d8ba7240;color:#fff0c6;border:1px solid #e6c47750}
 nav{background:#fff;border-bottom:1px solid #e6ece6;box-shadow:0 3px 13px #163b2910;padding:12px clamp(18px,4vw,65px);gap:6px}
 nav a{border-radius:9px;color:#48665a;font-weight:650;font-size:12px;padding:11px 14px;transition:background .15s}
 nav a:hover{background:#f2f6ef;color:#06402c}nav a.active{background:#0b4b36;color:#fff;box-shadow:0 3px 10px #0b4b3629}
 main{max-width:1460px;padding:35px clamp(16px,4vw,60px) 60px}
 .pageheading{padding:5px 0 12px}.eyebrow{font-size:11px;color:#aa833c;letter-spacing:2.7px}
 h1{font:700 clamp(27px,3vw,40px)/1.15 Georgia,'Times New Roman',serif;color:#0b3c2a;margin:10px 0 27px}
 h2{font:700 19px/1.3 Georgia,serif;color:#103e2b}h3{color:#153e30}
 .panel{border:1px solid #e1e9df;border-radius:17px;background:#fff;box-shadow:0 10px 35px #143b2610;padding:clamp(18px,2vw,30px);margin-bottom:23px}
 .stat{border:1px solid #e4e9e0;border-top:3px solid #bc9650;background:linear-gradient(145deg,#fff,#fbfcf7);box-shadow:0 8px 24px #123d2910;border-radius:15px;padding:24px}
 .stat strong{font-size:clamp(23px,2.5vw,32px);color:#0c4a34}.stat span{font-size:12px;font-weight:700;letter-spacing:.2px}
 button,.button{background:linear-gradient(110deg,#0a4a34,#086344);border:1px solid #0b4e37;border-radius:9px;padding:12px 18px;font-weight:700;box-shadow:0 4px 12px #0a51301a}
 button:hover,.button:hover{filter:brightness(1.08)}.quiet,.button.quiet{background:#f5f7f1;border:1px solid #dce5d9;color:#16543a;box-shadow:none}.danger{background:#8b3434}
 input,select,textarea{border:1px solid #d2ddd4;border-radius:9px;background:#fff;padding:12px 13px}input:focus,select:focus,textarea:focus{outline:3px solid #bc985438;border-color:#ad8c47}
 label{color:#3b5849;font-size:12px;font-weight:700}
 .tablewrap{border:1px solid #e8ede8;border-radius:11px}table{background:white}th{background:#f4f7f1;color:#547060;font-weight:800;font-size:10px}td{color:#234536}td a{color:#0a5b3f}
 .badge{background:#e9f2e8;color:#15563b;border:1px solid #d7e8d6}.notice{background:#e7f5e9;border:1px solid #c8e9d1;color:#14502e}.error{background:#fff0ed;border:1px solid #f3d0c9}
 .login{margin:32px auto 20px;max-width:490px;border-top:4px solid #c19b52;padding:35px}
 .login h2{font-size:26px}.login button{width:100%;margin-top:12px}
 footer{color:#819187;padding:30px 20px}.installer-identity{display:flex;gap:18px;align-items:center;margin:20px 0 25px}.installer-identity img{width:90px;height:90px;object-fit:cover;border-radius:15px;border:2px solid #b99042}
 @media(max-width:700px){.brand-logo{height:43px;width:44px}.brand{font-size:15px}.brand small{font-size:8px}main{padding:20px 15px 45px}.panel{padding:17px}.installer-identity img{width:65px;height:65px}}
}
