:root { --page: #EEF3F6; }
html { scroll-behavior: smooth; }
body { background: #EEF3F6; color: #0A2A3B; }
body.lang-bn, body.lang-bn .font-display { font-family: "Hind Siliguri", system-ui, sans-serif; }
.wrap { max-width: 1180px; margin-inline: auto; padding-inline: 20px; }
.wrap-wide { max-width: 1440px; margin-inline: auto; padding-inline: 20px; }
.hide { display: none !important; }

/* ticket-stub cut-outs on the package cards */
.stub-foot { position: relative; border-top: 2px dashed #D7E2E9; }
.stub-foot::before, .stub-foot::after {
  content: ""; position: absolute; top: -13px; width: 24px; height: 24px;
  border-radius: 50%; background: var(--page);
}
.stub-foot::before { left: -13px; }
.stub-foot::after { right: -13px; }

/* form controls */
.field { width: 100%; border: 1.5px solid #D7E2E9; border-radius: 12px; padding: 11px 13px;
  background: #fff; font-size: 14px; font-weight: 500; color: #0A2A3B; outline: none; }
.field:focus { border-color: #0A6A94; box-shadow: 0 0 0 3px rgba(10,106,148,.15); }
.field-sm { padding: 7px 10px; font-size: 13px; border-radius: 9px; }
.lbl { display: block; font-size: 12.5px; font-weight: 600; color: #4A6373; margin-bottom: 6px; }
.opt { border: 1.5px solid #D7E2E9; background: #fff; transition: border-color .15s, background .15s; }
.opt.sel { border-color: #0A6A94; background: #F1F8FB; box-shadow: inset 0 0 0 1.5px #0A6A94; }
:focus-visible { outline: 3px solid #F5C518; outline-offset: 2px; }

/* icons */
.i { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em;
  fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.i-fill { fill: currentColor; stroke: none; }

/* admin */
.tab-on { background: #064A68; color: #fff; }
table.adm { width: 100%; border-collapse: collapse; font-size: 13px; }
table.adm th { text-align: left; font-weight: 600; color: #4A6373; padding: 9px 10px;
  border-bottom: 1.5px solid #E2EAEF; white-space: nowrap; }
table.adm td { padding: 10px; border-bottom: 1px solid #EDF2F5; vertical-align: top; }
table.adm tr:hover td { background: #FAFCFD; }
.chip { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; display: inline-block; }
.stat { background: #fff; border-radius: 16px; padding: 18px 20px; box-shadow: 0 18px 40px -22px rgba(6,74,104,.55); }

/* printable quotation / invoice */
#doc { display: none; }
.doc-sheet { background: #fff; color: #0A2A3B; width: 100%; max-width: 780px; margin: 0 auto; padding: 34px 38px; }
#doc table, .doc-sheet table { width: 100%; border-collapse: collapse; }
#doc th, .doc-sheet th { text-align: left; font-size: 12px; text-transform: none; color: #4A6373;
  border-bottom: 2px solid #0A6A94; padding: 8px 6px; }
#doc td, .doc-sheet td { padding: 9px 6px; border-bottom: 1px solid #E6EDF1; font-size: 13.5px; }
#doc .right, .doc-sheet .right { text-align: right; }

@media print {
  @page { margin: 12mm; }
  body { background: #fff !important; }
  body.printing > *:not(#doc) { display: none !important; }
  body.printing #doc { display: block !important; }
  #doc .doc-sheet { box-shadow: none; padding: 0; max-width: none; }
  .noprint { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
