@font-face{font-family:"Inter";src:url("fonts/inter-var.woff2") format("woff2");font-weight:100 900;font-display:swap;font-style:normal}
@page{size:A4 portrait;margin:10mm}
*{box-sizing:border-box}
html{-webkit-print-color-adjust:exact;print-color-adjust:exact}
body{margin:0;background:#eef0f4;color:#0f172a;font-family:Inter,"Hiragino Sans","Noto Sans JP","Yu Gothic",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:10pt;line-height:1.4}
.bar{background:#fff;border-bottom:1px solid #dfe3ea;padding:14px 20px}
.bar-in{max-width:760px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.bar-in strong{display:block;font-size:17px}.bar-in span{color:#64748b;font-size:13px}
.bar-actions{display:flex;gap:10px}
.bar a,.bar button{font:inherit;font-weight:700;font-size:14px;border:0;border-radius:999px;padding:11px 20px;cursor:pointer;text-decoration:none}
.b-grey{background:#e5e7eb;color:#334155}.b-green{background:#16a34a;color:#fff}.b-green:hover{background:#15803d}
.bar-hint{max-width:760px;margin:10px auto 0;color:#64748b;font-size:12.5px}
.sheet{max-width:760px;margin:24px auto;padding:0 12px 40px;display:flex;flex-direction:column;gap:20px}
.tk{display:grid;grid-template-columns:minmax(0,1fr) 52mm;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.12);position:relative;break-inside:avoid;page-break-inside:avoid;overflow:hidden;min-height:84mm}
.tk-main{display:flex;flex-direction:column;min-width:0}
.tk-band{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5mm 7mm;color:var(--on);min-height:17mm;background-size:cover;background-position:center}
.tk-logo{max-height:9mm;max-width:46mm;object-fit:contain;display:block}
.tk-brand{font-weight:800;font-size:13pt;letter-spacing:-.01em}
.tk-kind{font-size:8pt;font-weight:800;letter-spacing:.18em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:1.2mm 3.2mm;opacity:.95}
.tk-body{padding:5mm 7mm 4mm;display:flex;flex-direction:column;gap:3.5mm;flex:1}
.tk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:5mm}
.tk-top h1{margin:0;font-size:19pt;line-height:1.12;letter-spacing:-.02em;font-weight:900;color:#0b1220}
.tk-cat{flex:none;background:var(--brand);color:var(--on);font-weight:800;font-size:9pt;border-radius:999px;padding:1.4mm 4mm;white-space:nowrap}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm 6mm}
.tk-block{display:flex;flex-direction:column;gap:.6mm;min-width:0}
.tk-block strong{font-size:11pt;font-weight:800;line-height:1.2;color:#0b1220}
.tk-block span:not(.tk-k){font-size:9pt;color:#475569}
.tk-k{font-size:7pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.tk-when strong{font-size:12pt}
.tk-foot{margin:auto 0 0;padding-top:2.5mm;border-top:1px solid #e5e7eb;font-size:7.5pt;color:#64748b;line-height:1.35}
.tk-stub{border-left:2px dashed #cbd5e1;background:linear-gradient(180deg,#f8fafc,#eef2f7);padding:6mm 4mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2mm;text-align:center;position:relative}
.tk-stub::before,.tk-stub::after{content:"";position:absolute;left:-3.5mm;width:7mm;height:7mm;border-radius:50%;background:#eef0f4}
.tk-stub::before{top:-3.5mm}.tk-stub::after{bottom:-3.5mm}
.tk-qr{width:40mm;height:40mm;background:#fff;border:1px solid #e2e8f0;border-radius:3mm;padding:1.5mm}
.tk-qr svg{width:100%;height:100%;display:block}
.tk-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:9.5pt;letter-spacing:.08em;color:#0b1220}
.tk-scan{font-size:8pt;color:#64748b}
.tk-admit{margin-top:1mm;background:var(--dark);color:#fff;font-weight:800;font-size:7.5pt;letter-spacing:.2em;text-transform:uppercase;padding:1.3mm 4mm;border-radius:999px}
.good{background:#fff;border-radius:14px;padding:6mm 7mm;box-shadow:0 10px 30px rgba(15,23,42,.08);break-inside:avoid;border-top:1.5mm solid var(--brand)}
.good h2{margin:0 0 3mm;font-size:13pt;font-weight:900}
.good-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm 8mm}
.good h3{margin:0 0 1mm;font-size:7.5pt;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.good p{margin:0;font-size:9pt;color:#334155}
@media (max-width:640px){.tk{grid-template-columns:1fr}.tk-stub{border-left:0;border-top:2px dashed #cbd5e1}.tk-stub::before,.tk-stub::after{display:none}.tk-grid,.good-grid{grid-template-columns:1fr}}
@media print{
  body{background:#fff}
  .no-print{display:none!important}
  .sheet{max-width:none;margin:0;padding:0;gap:6mm}
  .tk{box-shadow:none;border:1px solid #cbd5e1;border-radius:4mm;min-height:84mm}
  .tk-stub::before,.tk-stub::after{background:#fff;border:1px solid #cbd5e1}
  .good{box-shadow:none;border:1px solid #cbd5e1}
  .tk:nth-of-type(3n+1):not(:first-of-type){break-before:page}
}
/* Invoice */
.inv{max-width:760px;margin:24px auto 40px;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.12);padding:12mm 12mm 10mm;font-size:10pt}
.inv h1{margin:4mm 0 0;font-size:24pt;font-weight:900;letter-spacing:-.02em;color:#0b1220}
.inv h2{margin:0 0 1.5mm;font-size:7.5pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.inv p{margin:.8mm 0}
.inv-logo{max-height:12mm;max-width:60mm;display:block}
.inv-head{display:flex;justify-content:space-between;gap:8mm;align-items:flex-end;border-bottom:2px solid var(--brand);padding-bottom:5mm}
.inv-facts{margin:0;display:grid;grid-template-columns:auto auto;gap:1.2mm 6mm;font-size:9pt}
.inv-facts div{display:contents}.inv-facts dt{color:#64748b}.inv-facts dd{margin:0;font-weight:700;text-align:right}
.inv-note{background:#fef3c7;border:1px solid #fde68a;border-radius:3mm;padding:3mm 4mm;margin:5mm 0 0!important;font-weight:600}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:7mm 0}
.inv-parties strong{font-size:11pt}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.inv table{width:100%;border-collapse:collapse}
.inv th{font-size:7.5pt;text-transform:uppercase;letter-spacing:.08em;color:#64748b;text-align:left;padding:2mm 0;border-bottom:1px solid #cbd5e1}
.inv td{padding:2.5mm 0;border-bottom:1px solid #e5e7eb;vertical-align:top}
.inv .num{text-align:right;padding-left:4mm;white-space:nowrap}
.inv-sub{display:block;color:#64748b;font-size:8.5pt}
.inv-totals{margin:4mm 0 0 auto;max-width:90mm;display:flex;flex-direction:column;gap:1.5mm}
.inv-totals div{display:flex;justify-content:space-between;gap:6mm}
.inv-total{border-top:2px solid #0b1220;padding-top:2mm;font-weight:900;font-size:13pt}
.inv-rates{margin-top:6mm;font-size:9pt}
.inv-paid{margin-top:6mm!important;color:#334155}
.inv-foot{margin-top:4mm!important;color:#64748b;font-size:8.5pt}
@media (max-width:640px){.inv{margin:12px;padding:18px}.inv-head{flex-direction:column;align-items:flex-start}.inv-parties{grid-template-columns:1fr}}
@media print{.inv{box-shadow:none;margin:0;max-width:none;border-radius:0;padding:0}}

/* 4.0: the guest's own dot, and Powered by Gatecraft */
.tk-band-r{display:flex;align-items:center;gap:3mm}
.tk-gate{display:inline-flex;width:11mm;height:11mm}
.tk-gate-svg{width:100%;height:100%;display:block}
.tk-pw{margin:8mm 0 0;display:flex;justify-content:center}
.gc-powered{display:inline-flex}
.gc-powered,.gc-powered a{align-items:center;gap:6px;color:#6b7280;font-size:8.5pt;text-decoration:none;display:inline-flex}
.gc-powered strong{color:#0b0b0c;font-weight:800}
.gc-pw-mark{width:14px;height:14px;display:block}
