/* pos.luxious.org specific styles (on top of lux.css) */
.error-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.error-card{width:100%;max-width:460px}
.error-card h1{font-size:26px;margin-top:6px}

/* Installer */
.install{max-width:1120px;margin:0 auto;padding:28px 24px 40px}
.install-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}
.install-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;align-items:start}
.install-side{position:sticky;top:24px}
.install-side h1{font-size:26px;margin-bottom:8px}
.install-panel{max-width:720px;margin:0 auto}
.install-foot{margin-top:32px;text-align:center}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.checklist li{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;font-size:var(--fs-sm)}
.checklist li.ok .icon{color:var(--green-600)} .checklist li.bad .icon{color:var(--red-600)}
.step{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;background:var(--ink-900);color:#fff;font-size:12px;font-weight:600;margin-inline-end:10px;vertical-align:1px}
@media (max-width:900px){.install-grid{grid-template-columns:minmax(0,1fr)}.install-side{position:static}}

/* Area accents: admin rail carries a saffron tag, portal and app use the standard rail */
.area-tag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:2px 6px;border-radius:3px;background:var(--saffron-500);color:var(--ink-950);margin-inline-start:auto}
.area-tag.portal{background:#fff}
.area-tag.app{background:var(--cobalt-500);color:#fff}

/* Detail header used for customer/licence pages */
.record-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}
.record-head .meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--text-2);font-size:var(--fs-sm);margin-top:6px}
.record-head .meta span{display:inline-flex;align-items:center;gap:6px}
.side-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
@media (max-width:1100px){.side-layout{grid-template-columns:minmax(0,1fr)}}
.seat-meter{display:flex;gap:4px}
.seat-meter span{width:14px;height:14px;border-radius:3px;background:var(--ink-200)}
.seat-meter span.on{background:var(--ink-900)}
.machine{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--ink-150)}
.machine:last-child{border-bottom:0}
.machine .m-icon{width:40px;height:40px;border-radius:8px;background:var(--ink-100);display:grid;place-items:center;color:var(--ink-700)}
.machine.released{opacity:.6}
.thread{display:flex;flex-direction:column;gap:12px}
.msg{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.msg.admin{background:var(--cobalt-50);border-color:#d3dcfa}
.msg .msg-head{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-sm);color:var(--text-2);margin-bottom:6px}
.msg .msg-body{white-space:pre-wrap;overflow-wrap:anywhere}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters .select{width:auto;min-width:150px}
.key-reveal{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--ink-950);color:#fff;border-radius:var(--r-lg)}
.key-reveal .licence-key{flex:1;min-width:0;overflow-wrap:anywhere}
.key-reveal .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.chart-legend{display:flex;gap:16px;font-size:var(--fs-xs);color:var(--text-3)}

/* Print documents (invoices, delivery notes...) */
.print-doc{background:#fff;max-width:880px;margin:0 auto;padding:40px;color:#111}
.print-doc .doc-head{display:flex;justify-content:space-between;gap:24px;margin-bottom:28px}
.print-doc .doc-title{font-size:26px;font-weight:700;letter-spacing:-.01em}
.print-doc table{width:100%;border-collapse:collapse;margin:18px 0}
.print-doc th{font-size:12px;text-align:start;border-bottom:1.5px solid #111;padding:8px 6px}
.print-doc td{padding:8px 6px;border-bottom:1px solid #ddd;font-size:13px}
.print-doc .num{text-align:end}
.print-doc .party{border:1px solid #ddd;border-radius:6px;padding:12px 14px;min-width:240px}
.print-doc .legal{margin-top:36px;font-size:11px;color:#555;border-top:1px solid #ddd;padding-top:10px;text-align:center}
.print-toolbar{display:flex;justify-content:center;gap:8px;padding:16px}
.receipt80{width:76mm;margin:0 auto;font-family:var(--mono);font-size:12px;color:#000;background:#fff;padding:8px}
.receipt80 .r-center{text-align:center}
.receipt80 .r-row{display:flex;justify-content:space-between;gap:6px}
.receipt80 hr{border:0;border-top:1px dashed #000;margin:6px 0}
@media print{
  .print-toolbar{display:none}
  .print-doc{padding:0;max-width:none}
  @page{margin:14mm}
  body.receipt-body{margin:0}
}

/* Public product page */
.site-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1180px;margin:0 auto;padding:18px 24px}
.site-nav .links{display:flex;gap:6px;align-items:center}
.site-hero{max-width:1180px;margin:0 auto;padding:40px 24px 64px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:center}
.site-hero h1{font-size:clamp(34px,4.6vw,56px);line-height:1.04;letter-spacing:-.03em;font-weight:600}
.site-hero .lead{font-size:18px;color:var(--text-2);margin-top:18px;max-width:520px}
.site-hero .ctas{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.site-band{background:var(--ink-950);color:#cfd5dd}
.site-band .inner{max-width:1180px;margin:0 auto;padding:64px 24px}
.site-band h2{color:#fff;font-size:30px;letter-spacing:-.02em;max-width:620px}
.site-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.08);margin-top:36px;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden}
.site-cols>div{background:var(--ink-950);padding:24px}
.site-cols h3{color:#fff;font-size:16px;margin:12px 0 6px}
.site-cols .icon{color:var(--saffron-500)}
.site-section{max-width:1180px;margin:0 auto;padding:72px 24px}
.site-section h2{font-size:30px;letter-spacing:-.02em}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:32px;counter-reset:flow}
.flow li{list-style:none;border-top:2px solid var(--ink-900);padding-top:14px;counter-increment:flow}
.flow li::before{content:counter(flow,decimal-leading-zero);font-family:var(--mono);font-size:12px;color:var(--text-3);display:block;margin-bottom:8px}
.flow h3{font-size:16px;margin-bottom:6px}
.site-foot{border-top:1px solid var(--line);background:var(--surface)}
.site-foot .inner{max-width:1180px;margin:0 auto;padding:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-2)}
.mock-register{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);overflow:hidden}
.mock-register .mr-top{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.mock-register .mr-scan{flex:1;height:36px;border:1.5px solid var(--saffron-500);border-radius:6px;display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--text-3);font-size:13px;box-shadow:0 0 0 3px rgba(229,154,47,.18)}
.mock-register .mr-body{display:grid;grid-template-columns:1fr 1fr}
.mock-register .mr-lines{border-inline-end:1px solid var(--line)}
.mock-register .mr-line{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--ink-150);font-size:13px}
.mock-register .mr-total{padding:14px}
.mock-register .mr-total strong{font-size:28px;display:block;letter-spacing:-.02em}
@media (max-width:900px){.site-hero{grid-template-columns:minmax(0,1fr);padding-top:16px}.site-cols,.flow{grid-template-columns:minmax(0,1fr)}.site-nav .links .hide-sm{display:none}}
