/*
	CSS FOR Dreby Food 4 Thought Alliance
	Created by and Copyright BinaryFold4 [www.binaryfold4.com] 2024
*/
/* These files should not need to be edited after initial setup - changing these would have major site wide effects */
html {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
*,
*:before,
*:after {
  -moz-box-sizing: inherit;
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}
div,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
fieldset,
form,
label,
legend,
th,
td,
article,
aside,
figure,
footer,
header,
menu,
nav,
section {
  padding: 0;
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
nav,
section,
audio,
canvas,
video {
  display: block;
}
sub,
sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}
abbr[title] {
  border-bottom: 1px dotted;
}
blockquote {
  font-style: normal;
  margin: 0;
}
blockquote p {
  font-style: normal;
  margin: 0 0 1em;
}
address {
  font-style: normal;
  margin: 0 0 1em;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
a img,
img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  border: 0;
}
input,
textarea,
button,
select {
  vertical-align: baseline;
  font-size: 100%;
  line-height: normal;
  margin: 0;
}
textarea {
  overflow: auto;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
}
iframe {
  border: 0;
  margin: 0;
}
hr {
  width: 100%;
  clear: both;
  height: 0;
  border: 0;
  border-bottom: 1px solid var(--color_border);
  margin: var(--spacing-lg) 0;
}
.sr-only,
.visually-hidden,
.vishidden {
  width: 1px;
  height: 1px;
  position: absolute !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  padding: 0;
  border: 0;
  margin: -1px;
}
:root {
  --spacing-xxs: 6px;
  --spacing-xs: 10px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 32px;
  --spacing-xl: 48px;
  --radius-xs: 4px;
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 24px;
  --footer-height: 90px;
}
:root {
  --color_grey-50: #fafafa;
  --color_grey-100: #f5f5f5;
  --color_grey-200: #e6e6e6;
  --color_grey-300: #cccccc;
  --color_grey-400: #b2b2b2;
  --color_grey-500: #9e9e9e;
  --color_grey-600: #767676;
  --color_grey-700: #5b5b5b;
  --color_grey-800: #424242;
  --color_grey-900: #1a1a1a;
  --color_primary: #6dc6da;
  --color_secondary: #4A90E2;
  --color_secondary-dark: #2564b1;
  --color_brand-dark: #000000;
  --color_brand-light: #F2F3EB;
  --color_border: var(--color_grey-200);
  --color_bg: var(--color_secondary);
  --color_text-dark: #000000;
  --color_text-grey: var(--color_grey-600);
  --color_text-light: #fff;
  --color_disabled: var(--color_grey-300);
  --color_focus: var(--color_primary);
  --color_info: #2F5DD1;
  --color_negative: #B9242B;
  --color_negative_bg: #facbcb;
  --color_positive: #0e8831;
  --color_positive_bg: #cbfad7;
  --color_warning: #bf7733;
  --color_warning_bg: #fdf3c4;
  --color_mono: var(--color_grey-900);
}
:root {
  --font_family: "Lato", sans-serif;
  --font-weight-100: 100;
  --font-weight-200: 200;
  --font-weight-300: 300;
  --font-weight-400: 400;
  --font-weight-500: 500;
  --font-weight-600: 600;
  --font-weight-700: 700;
  --font-weight-800: 800;
  --font_weight: var(--font-weight-400);
  --font_weight-med: var(--font-weight-500);
  --font_weight-semi: var(--font-weight-600);
  --font_weight-bold: var(--font-weight-700);
  --font-size-10: calc(10/16 * 1rem);
  --font-size-11: calc(11/16 * 1rem);
  --font-size-12: calc(12/16 * 1rem);
  --font-size-13: calc(13/16 * 1rem);
  --font-size-14: calc(14/16 * 1rem);
  --font-size-15: calc(15/16 * 1rem);
  --font-size-16: calc(16/16 * 1rem);
  --font-size-17: calc(17/16 * 1rem);
  --font-size-18: calc(18/16 * 1rem);
  --font-size-21: calc(21/16 * 1rem);
  --font-size-24: calc(24/16 * 1rem);
  --font-size-28: calc(28/16 * 1rem);
  --font-size-32: calc(32/16 * 1rem);
  --font-size-36: calc(36/16 * 1rem);
  --font-size-42: calc(42/16 * 1rem);
  --font-size-48: calc(48/16 * 1rem);
  --font-size-55: calc(55/16 * 1rem);
  --font-size-63: calc(63/16 * 1rem);
  --font-size-73: calc(73/16 * 1rem);
  --font-size-84: calc(84/16 * 1rem);
  --font-size-96: calc(96/16 * 1rem);
  --font-size-110: calc(110/16 * 1rem);
  --font-size-127: calc(127/16 * 1rem);
  --font-size-146: calc(146/16 * 1rem);
  --font-size-167: calc(167/16 * 1rem);
  --font-size-192: calc(192/16 * 1rem);
  --font_size-xs: var(--font-size-12);
  --font_size-sm: var(--font-size-14);
  --font_size: var(--font-size-16);
  --font_size-lg: var(--font-size-18);
  --font_size-xl: var(--font-size-21);
  --font_size-2xl: var(--font-size-24);
}
:root {
  --icon_account: url(../assets/icons/dark/account.svg);
  --icon_basket: url(../assets/icons/dark/basket.svg);
  --icon_pound: url(../assets/icons/dark/currency_pound.svg);
  --icon_top-up: url(../assets/icons/dark/top-up.svg);
  --icon_info: url(../assets/icons/alerts/info.svg);
  --icon_success: url(../assets/icons/alerts/success.svg);
  --icon_warning: url(../assets/icons/alerts/warning.svg);
  --icon_error: url(../assets/icons/alerts/error.svg);
  --icon_pending: url(../assets/icons/pending.svg);
  --icon_denied: url(../assets/icons/denied.svg);
  --icon_granted: url(../assets/icons/success.svg);
  --icon_home--off: url(../assets/icons/off/home.svg);
  --icon_home--on: url(../assets/icons/on/home.svg);
  --icon_qr--off: url(../assets/icons/off/qr.svg);
  --icon_qr--on: url(../assets/icons/on/qr.svg);
  --icon_top-up--off: url(../assets/icons/off/top-up.svg);
  --icon_top-up--on: url(../assets/icons/on/top-up.svg);
  --icon_history--off: url(../assets/icons/off/history.svg);
  --icon_history--on: url(../assets/icons/on/history.svg);
  --icon_account--off: url(../assets/icons/off/account.svg);
  --icon_account--on: url(../assets/icons/on/account.svg);
  --icon_log-out--off: url(../assets/icons/off/log-out.svg);
  --icon_log-out--on: url(../assets/icons/on/log-out.svg);
}
html {
  font-size: 100%;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  scroll-behavior: smooth;
  scroll-padding-top: var(--spacing-lg);
}
html.ccm-toolbar-visible {
  scroll-padding-top: calc(var(--spacing-lg) + 48px);
}
body {
  width: 100%;
  background-color: var(--color_bg);
  background: linear-gradient(var(--color_primary) 0%, var(--color_secondary) 100%);
  background-attachment: fixed;
  font-weight: var(--font_weight);
  font-size: 100%;
  font-optical-sizing: auto;
  font-family: var(--font_family);
  font-variation-settings: "slnt" 0;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  color: var(--color_text-dark);
  padding: 0;
  border: 0;
  margin: 0;
}
.ccm-page {
  /* ── No-shop gate ────────────────────────────────────────────── */
  /* ── State visibility ────────────────────────────────────────── */
  /* ── Big scan button ─────────────────────────────────────────── */
  /* ── Member info card (QR path) ─────────────────────────────── */
  /* ── Shop items (redeem items list) ─────────────────────────── */
  /* ── Keypad ──────────────────────────────────────────────────── */
  /* ── Footer shop selector - only visible to super admins ────────────────────────────────────── */
}
.ccm-page main {
  padding: var(--spacing-md) 0 var(--footer-height, 90px);
}
.ccm-page .container {
  width: 90%;
  max-width: 600px;
  margin: 0 auto;
}
.ccm-page .d-none {
  display: none;
}
.ccm-page h1,
.ccm-page h2,
.ccm-page h3,
.ccm-page h4,
.ccm-page h5,
.ccm-page h6 {
  --heading_weight: var(--font_weight-bold);
  --heading_lh: 1.4em;
  --heading_margin: 0;
  font-weight: var(--heading_weight);
  line-height: var(--heading_lh);
  color: currentColor;
  margin: var(--heading_margin);
}
.ccm-page h1 {
  font-size: var(--font_size-2xl);
}
.ccm-page h2 {
  font-size: var(--font_size-xl);
}
.ccm-page h3 {
  font-size: var(--font_size-lg);
}
.ccm-page h2.balance {
  font-size: var(--font_size-2xl);
}
.ccm-page p {
  --p_color: var(--color_text-dark);
  --p_margin: 0 0 1em;
  font-size: var(--font_size);
  line-height: 1.4em;
  color: var(--p_color);
  margin: var(--p_margin);
}
.ccm-page p.accent-text {
  --p_color: var(--color_text-grey);
}
:root .ccm-page {
  --link_decoration: underline;
  --link_thickness: 1px;
  --link_offset: 3px;
  --link_color: var(--color_secondary);
}
.ccm-page a {
  text-decoration: var(--link_decoration);
  text-decoration-thickness: var(--link_thickness);
  text-underline-offset: var(--link_offset);
  color: var(--link_color);
  transition: all 0.1s ease;
}
.ccm-page a:is(:hover) {
  --link_color: var(--color_text-dark);
}
.ccm-page a:is(:active) {
  color: var(--color_text-dark);
}
.ccm-page a:is(:focus) {
  color: var(--color_text-dark);
  outline: var(--color_text-dark);
  outline-offset: 2px;
}
.ccm-page .account-nav {
  --link_decoration: none;
  --link_decoration--hover: none;
  --link_color: var(--color_text-dark);
  --link_color--hover: var(--link_color);
}
.ccm-page .account-nav .account-nav__title {
  font-weight: var(--font_weight-bold);
  font-size: var(--font_size);
  color: var(--color_text-dark);
}
:root .ccm-page {
  --btn_icon-size: 13px;
  --btn_icon-pad: 8px;
  --btn_bg: var(--color_secondary);
  --btn_bg-img: none;
  --btn_bg-pos: center center;
  --btn_bg-size: var(--btn_icon-size) var(--btn_icon-size);
  --btn_bg-repeat: no-repeat;
  --btn_font: var(--font_family);
  --btn_weight: var(--font_weight-semi);
  --btn_size: var(--font_size-lg);
  --btn_lh: 1;
  --btn_ls: 0;
  --btn_case: none;
  --btn_align: center;
  --btn_style: normal;
  --btn_color: var(--color_text-light);
  --btn_border-color: var(--btn_bg);
  --btn_border-width: 2px;
  --btn_radius: var(--radius-sm);
  --btn_pad-top: 1em;
  --btn_pad-bot: 1em;
  --btn_pad-left: 1em;
  --btn_pad-right: 1em;
  --btn_margin-top: 0;
  --btn_margin-bot: 0;
  --btn_margin-left: 0;
  --btn_margin-right: 0;
  --btn_shadow: none;
  --btn_bg--hover: var(--color_secondary-dark);
  --btn_color--hover: var(--btn_color);
  --btn_border-color--hover: var(--btn_bg--hover);
  --btn_bg-img--hover: none;
  --btn_bg--active: var(--color_secondary-dark);
  --btn_color--active: var(--btn_color);
  --btn_border-color--active: var(--btn_bg--active);
  --btn_bg-img--active: none;
  --btn_bg--focus: var(--color_secondary-dark);
  --btn_color--focus: var(--btn_color);
  --btn_border-color--focus: var(--btn_bg--focus);
  --btn_bg-img--focus: none;
  --btn_outline--focus: 2px solid var(--color_brand-dark);
  --btn_outline-offset--focus: 2px;
  --btn_bg--disabled: var(--color_grey-50);
  --btn_color--disabled: var(--color_grey-300);
  --btn_border-color--disabled: var(--color_grey-200);
}
.ccm-page .btn {
  width: auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: var(--btn_bg);
  background-image: var(--btn_bg-img);
  background-repeat: var(--btn_bg-repeat);
  background-position: var(--btn_bg-pos);
  background-size: var(--btn_bg-size);
  font-family: var(--btn_font);
  font-weight: var(--btn_weight);
  font-size: var(--btn_size);
  font-style: var(--btn_style);
  line-height: var(--btn_lh);
  letter-spacing: var(--btn_ls);
  text-decoration: none;
  text-transform: var(--btn_case);
  text-align: var(--btn_align);
  text-shadow: none;
  text-box: trim-both text alphabetic;
  color: var(--btn_color);
  padding: var(--btn_pad-top) var(--btn_pad-right) var(--btn_pad-bot) var(--btn_pad-left);
  border: var(--btn_border-width) solid var(--btn_border-color);
  border-radius: var(--btn_radius);
  margin: var(--btn_margin-top) var(--btn_margin-right) var(--btn_margin-bot) var(--btn_margin-left);
  box-shadow: var(--btn_shadow);
  cursor: pointer;
  transition: all 0.25s ease;
}
.ccm-page .btn:is(:hover) {
  background-color: var(--btn_bg--hover);
  color: var(--btn_color--hover);
  border-color: var(--btn_border-color--hover);
  text-decoration: none;
}
.ccm-page .btn:is(:active) {
  background-color: var(--btn_bg--active);
  color: var(--btn_color--active);
  border-color: var(--btn_border-color--active);
  text-decoration: none;
}
.ccm-page .btn:is(:focus) {
  background-color: var(--btn_bg--focus);
  color: var(--btn_color--focus);
  border-color: var(--btn_border-color--focus);
  outline: var(--btn_outline--focus);
  outline-offset: var(--btn_outline-offset--focus);
  text-decoration: none;
}
.ccm-page .btn:disabled {
  background-color: var(--btn_bg--disabled);
  color: var(--btn_color--disabled);
  border-color: var(--btn_border-color--disabled);
  cursor: not-allowed;
  text-decoration: none;
}
.ccm-page .btn--full {
  width: 100%;
}
.ccm-page .btn--outline {
  --btn_bg: transparent;
  --btn_color: var(--color_secondary);
  --btn_border-color: var(--color_secondary);
  --btn_bg--hover: #e6f2ff;
  --btn_color--hover: var(--color_secondary);
  --btn_border-color--hover: var(--color_secondary);
}
:root .ccm-page {
  --input_bg: #fff;
  --input_border: 1px solid var(--color_border);
  --input_border-radius: var(--radius-xs);
}
.ccm-page fieldset {
  background: transparent;
  padding: 0;
  border: 0;
  margin: 0;
}
.ccm-page fieldset legend {
  width: 100%;
  float: left;
  position: relative;
  font-size: var(--font_size-2xl);
  font-weight: var(--font_weight-bold);
  color: var(--color_text-dark);
  margin: 0;
}
.ccm-page fieldset legend + .form-group {
  clear: both;
}
.ccm-page .form-stacked {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--spacing-md);
}
.ccm-page .form-group {
  margin: 0;
  border: none;
  padding: 0;
}
.ccm-page .form-group label,
.ccm-page .form-group .control-label {
  display: block;
  float: none;
  font-weight: var(--font_weight-bold);
  font-size: 1.0625em;
  margin-bottom: 8px;
}
.ccm-page .form-group .form-text {
  display: block;
  font-size: 0.875em;
  color: var(--color_text-grey);
  margin-top: 4px;
}
.ccm-page .form-group .form-text + textarea,
.ccm-page .form-group .form-text + input {
  margin-top: 10px;
}
.ccm-page .form-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--spacing-sm);
}
.ccm-page .form-actions .btn {
  flex: 1 1 auto;
}
.ccm-page .form-control {
  display: block;
  width: 100%;
  max-width: 100%;
  background-color: var(--input_bg);
  font-family: var(--font_family);
  font-size: var(--font_size);
  padding: 0.75em 1em;
  border: var(--input_border);
  border-radius: var(--input_border-radius);
  color: var(--color_text-dark);
}
.ccm-page .form-control:focus {
  outline: none;
  border-color: var(--color_primary);
}
@media (max-width: 425px) {
  .ccm-page input[type="date"].form-control {
    height: 45px;
    -webkit-appearance: none;
    appearance: none;
  }
}
.ccm-page textarea.form-control {
  min-height: 100px;
  resize: vertical;
}
.ccm-page .form-check-group label,
.ccm-page .radio-group label,
.ccm-page .radio-list label {
  font-weight: normal;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ccm-page .check-inline,
.ccm-page .radio-inline {
  display: inline-flex !important;
  margin-right: 15px;
}
.ccm-page .tag-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
}
.ccm-page .tag-selector .tag {
  cursor: pointer;
}
.ccm-page .tag-selector .tag input {
  display: none;
}
.ccm-page .tag-selector .tag span {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--color_border);
  border-radius: 20px;
  background: #fff;
  font-size: 0.875em;
  transition: all 0.2s;
}
.ccm-page .tag-selector .tag input:checked + span {
  background: var(--color_primary);
  border-color: var(--color_primary);
  color: #fff;
}
.ccm-page .alert {
  --alert_bg: #fff;
  --alert_padding: 10px calc(14px + 18px + 0.5rem);
  --alert_border: 1px solid var(--color_border);
  --alert_border-radius: var(--radius-sm);
  --alert_margin: 0 0 15px;
  --alert_font-size: var(--font_size);
  --alert_title_color: var(--color_text-dark);
  --alert_text_color: var(--color_text-grey);
  --alert-icon: var(--icon_info);
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem 0.5rem;
  background: var(--alert_bg);
  font-size: var(--alert_font-size);
  padding: var(--alert_padding);
  border: var(--alert_border);
  border-radius: var(--alert_border-radius);
  margin: var(--alert_margin);
}
.ccm-page .alert.alert-success {
  --alert_title_color: var(--color_positive);
  --alert-icon: var(--icon_success);
}
.ccm-page .alert.alert-warning {
  --alert_title_color: var(--color_warning);
  --alert-icon: var(--icon_warning);
}
.ccm-page .alert.alert-danger {
  --alert_title_color: var(--color_negative);
  --alert-icon: var(--icon_error);
}
.ccm-page .alert p {
  font-size: 100%;
  color: var(--alert_text_color);
  margin: 0;
}
.ccm-page .alert p.alert__title {
  position: relative;
  font-weight: var(--font_weight-bold);
  color: var(--alert_title_color);
}
.ccm-page .alert p.alert__title::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 1px;
  left: -27px;
  background: transparent var(--alert-icon) no-repeat center center / contain;
}
.ccm-page .alert#lookup-error,
.ccm-page .alert#purchase-error {
  position: relative;
  font-weight: var(--font_weight-bold);
  color: var(--alert_title_color);
}
.ccm-page .alert#lookup-error::before,
.ccm-page .alert#purchase-error::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 10px;
  left: 10px;
  background: transparent var(--alert-icon) no-repeat center center / contain;
}
.ccm-page .alert-dismissible .btn-close {
  display: none;
}
.ccm-page .alert-dismissible:first-child {
  font-weight: var(--font_weight-bold);
  color: var(--alert_title_color);
}
.ccm-page .alert-dismissible:first-child::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 11px;
  left: 14px;
  background: transparent var(--alert-icon) no-repeat center center / contain;
}
.ccm-page .card {
  --card_bg: #fff;
  --card_padding: var(--spacing-md);
  --card_border: 0;
  --card_radius: var(--radius-sm);
  --card_margin: 0;
  --card_shadow: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--spacing-md);
  max-width: 600px;
  background-color: var(--card_bg);
  padding: var(--card_padding);
  border: var(--card_border);
  border-radius: var(--card_radius);
  margin: var(--card_margin) auto;
  box-shadow: var(--card_shadow);
}
.ccm-page .card .alert {
  --alert_margin: 0;
}
.ccm-page .card + .card {
  margin-top: var(--spacing-md);
}
.ccm-page .card .card__header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  margin: 0;
}
.ccm-page .card .card__header p {
  margin: 0;
}
.ccm-page .card .card__header.card__header--centered {
  text-align: center;
}
.ccm-page .card .card__header.card__header--inline {
  flex-direction: row;
  align-items: center;
}
.ccm-page .card .card__icon {
  font-size: 3rem;
}
.ccm-page .card #qr-container {
  display: block;
  max-width: 270px;
  padding: var(--spacing-xs);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color_border);
  margin: 0 auto;
}
.ccm-page .card #qr-container img {
  max-width: 100%;
  height: auto;
}
.ccm-page .progress-bar .progress-bar__outer {
  display: block;
  width: 100%;
  height: 14px;
  overflow: hidden;
  position: static;
  background: #dee2e6;
  border-radius: var(--radius-sm);
  margin-bottom: var(--spacing-xs);
}
.ccm-page .progress-bar .progress-bar__inner {
  display: block;
  width: 100%;
  height: 14px;
  background: var(--color_primary);
  border-radius: var(--radius-sm);
  transition: width 0.9s linear, background-color 0.5s ease;
}
.ccm-page .simple-table {
  display: flex;
  flex-direction: column;
}
.ccm-page .simple-table-row {
  --btn_pad-top: 0.7em;
  --btn_pad-bot: 0.7em;
  display: grid;
  grid-template-columns: 36px 1fr min-content;
  gap: 0 var(--spacing-xs);
  align-items: center;
  padding: var(--spacing-sm) 0;
  border-top: 1px solid var(--color_border);
}
@media (min-width: 480px) {
  .ccm-page .simple-table-row {
    grid-template-columns: 48px 1fr min-content;
  }
}
.ccm-page .simple-table-row:last-child {
  padding-bottom: 0;
}
.ccm-page .simple-table-row .positive {
  color: var(--color_positive);
}
.ccm-page .simple-table-row .negative {
  color: var(--color_negative);
}
.ccm-page .simple-table-row .simple-table__icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--color_grey-100) none no-repeat center center / 24px;
  border-radius: var(--radius-sm);
}
@media (min-width: 480px) {
  .ccm-page .simple-table-row .simple-table__icon {
    width: 48px;
    height: 48px;
  }
}
.ccm-page .simple-table-row .simple-table__icon.arrow--right {
  background-color: transparent;
}
.ccm-page .simple-table-row .simple-table__info {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 3px;
}
.ccm-page .simple-table-row .simple-table__emphasis {
  font-weight: var(--font_weight-bold);
  font-size: var(--font_size);
  color: var(--color_text-dark);
}
.ccm-page .simple-table-row .simple-table__small-text {
  font-size: var(--font_size-sm);
  color: var(--color_text-grey);
}
.ccm-page .transaction-item__amount {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 3px;
}
.ccm-page .transaction-item__amount {
  min-width: 60px;
  text-align: right;
  white-space: nowrap;
}
.ccm-page .transaction-item.transaction--account .simple-table__icon {
  background-image: var(--icon_account);
}
.ccm-page .transaction-item.transaction--extend .simple-table__icon {
  background-image: var(--icon_account);
}
.ccm-page .transaction-item.transaction--credit .simple-table__icon {
  background-color: var(--color_positive_bg);
  background-image: var(--icon_top-up);
}
.ccm-page .transaction-item.transaction--credit .transaction-item__amount-value {
  color: var(--color_positive);
}
.ccm-page .transaction-item.transaction--debit .simple-table__icon {
  background-color: var(--color_warning_bg);
  background-image: var(--icon_basket);
}
.ccm-page .transaction-item.transaction--debit .transaction-item__amount-value {
  color: var(--color_negative);
}
.ccm-page .credit-pack .simple-table__icon {
  background-image: var(--icon_top-up);
}
.ccm-page .credit-pack.selected .simple-table__icon {
  background-color: var(--color_positive_bg);
}
.ccm-page .credit-pack.selected .btn {
  --btn_bg: var(--color_secondary-dark);
  --btn_border-color: var(--color_secondary-dark);
}
.ccm-page .renewal-history-item.granted .simple-table__icon {
  background-color: var(--color_positive_bg);
  background-image: var(--icon_granted);
}
.ccm-page .renewal-history-item.denied .simple-table__icon {
  background-color: var(--color_negative_bg);
  background-image: var(--icon_denied);
}
.ccm-page .renewal-history-item.pending .simple-table__icon {
  background-color: var(--color_warning_bg);
  background-image: var(--icon_pending);
}
.ccm-page .progress {
  width: 100%;
  height: 6px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 101;
  background: #c2edf6;
}
.ccm-page .progress .bar {
  width: 0%;
  height: 100%;
  background: var(--color_primary);
  -o-transition: background 0.15s ease 0s;
  -moz-transition: background 0.15s ease 0s;
  -webkit-transition: background 0.15s ease 0s;
  transition: background 0.15s ease 0s;
}
@media (prefers-reduced-motion: reduce) {
  .ccm-page .progress .bar {
    -o-transition: none;
    -moz-transition: none;
    -webkit-transition: none;
    transition: none;
  }
}
.ccm-page .page-header {
  text-align: center;
  margin-bottom: var(--spacing-md);
}
.ccm-page .page-header .df4ta-logo {
  text-align: center;
  margin-bottom: var(--spacing-md);
}
.ccm-page .page-header p {
  font-size: var(--font_size-lg);
}
.ccm-page .siteFooter {
  --footer_bg: var(--color_grey-100);
  --footer_color: var(--color_grey-600);
  --footer_color-active: var(--color_secondary);
  width: 100%;
  position: fixed;
  bottom: 0;
  z-index: 1;
  background-color: var(--footer_bg);
  color: var(--footer_color);
}
.ccm-page .siteFooter .bottom-nav ul {
  display: flex;
  justify-content: space-around;
  list-style: none;
  padding: 10px 0;
  margin: 0;
}
.ccm-page .siteFooter .bottom-nav li {
  text-align: center;
}
.ccm-page .siteFooter .bottom-nav li a {
  min-width: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
  background-color: transparent;
  font-size: var(--font_size-xs);
  text-decoration: none;
  color: var(--footer_color);
  padding: 4px;
  border-radius: var(--radius-sm);
  transition: color 0.3s ease;
}
.ccm-page .siteFooter .bottom-nav li a::before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background: transparent none no-repeat center center / 24px auto;
  transition: background-image 0.3s ease;
}
.ccm-page .siteFooter .bottom-nav li.nav-item-259 a::before {
  background-image: var(--icon_home--off);
}
.ccm-page .siteFooter .bottom-nav li.nav-item-260 a::before {
  background-image: var(--icon_top-up--off);
}
.ccm-page .siteFooter .bottom-nav li.nav-item-277 a::before {
  background-image: var(--icon_history--off);
}
.ccm-page .siteFooter .bottom-nav li.nav-item-279 a::before {
  background-image: var(--icon_account--off);
}
.ccm-page .siteFooter .bottom-nav li.nav-item-log-out a::before {
  background-image: var(--icon_log-out--off);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected a,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected a,
.ccm-page .siteFooter .bottom-nav li:hover a,
.ccm-page .siteFooter .bottom-nav li:focus a,
.ccm-page .siteFooter .bottom-nav li:focus-within a {
  color: var(--footer_color-active);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected.nav-item-259 a::before,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected.nav-item-259 a::before,
.ccm-page .siteFooter .bottom-nav li:hover.nav-item-259 a::before,
.ccm-page .siteFooter .bottom-nav li:focus.nav-item-259 a::before,
.ccm-page .siteFooter .bottom-nav li:focus-within.nav-item-259 a::before {
  background-image: var(--icon_home--on);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected.nav-item-260 a::before,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected.nav-item-260 a::before,
.ccm-page .siteFooter .bottom-nav li:hover.nav-item-260 a::before,
.ccm-page .siteFooter .bottom-nav li:focus.nav-item-260 a::before,
.ccm-page .siteFooter .bottom-nav li:focus-within.nav-item-260 a::before {
  background-image: var(--icon_top-up--on);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected.nav-item-277 a::before,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected.nav-item-277 a::before,
.ccm-page .siteFooter .bottom-nav li:hover.nav-item-277 a::before,
.ccm-page .siteFooter .bottom-nav li:focus.nav-item-277 a::before,
.ccm-page .siteFooter .bottom-nav li:focus-within.nav-item-277 a::before {
  background-image: var(--icon_history--on);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected.nav-item-279 a::before,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected.nav-item-279 a::before,
.ccm-page .siteFooter .bottom-nav li:hover.nav-item-279 a::before,
.ccm-page .siteFooter .bottom-nav li:focus.nav-item-279 a::before,
.ccm-page .siteFooter .bottom-nav li:focus-within.nav-item-279 a::before {
  background-image: var(--icon_account--on);
}
.ccm-page .siteFooter .bottom-nav li.nav-selected.nav-item-log-out a::before,
.ccm-page .siteFooter .bottom-nav li.nav-path-selected.nav-item-log-out a::before,
.ccm-page .siteFooter .bottom-nav li:hover.nav-item-log-out a::before,
.ccm-page .siteFooter .bottom-nav li:focus.nav-item-log-out a::before,
.ccm-page .siteFooter .bottom-nav li:focus-within.nav-item-log-out a::before {
  background-image: var(--icon_log-out--on);
}
.ccm-page #state-no-shop {
  display: none;
}
.ccm-page #state-no-shop {
  display: none;
}
.ccm-page #state-idle {
  display: block;
}
.ccm-page #state-scanning {
  display: none;
}
.ccm-page #state-identity {
  display: none;
}
.ccm-page #state-member-status {
  display: none;
}
.ccm-page #state-items {
  display: none;
}
.ccm-page #state-purchase {
  display: none;
}
.ccm-page #state-member {
  display: none;
}
.ccm-page #state-sale-done {
  display: none;
}
.ccm-page #state-wrong-shop {
  display: none;
}
.ccm-page .form-control#input-ni {
  text-transform: uppercase;
  font-family: monospace;
}
.ccm-page #btn-scan-launch {
  --btn_size: var(--font_size-2xl);
  --btn_pad-top: 1.5em;
  --btn_pad-bot: 1.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-md);
  box-shadow: 0 4px 14px rgba(21, 62, 133, 0.35);
}
.ccm-page .scanner-box {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
  background: #111;
  border-radius: var(--radius-sm);
  margin-bottom: var(--spacing-md);
}
.ccm-page #scanner-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ccm-page .scanner-overlay {
  position: absolute;
  inset: 0;
  border: 3px solid rgba(0, 200, 80, 0.85);
  border-radius: var(--radius-sm);
  pointer-events: none;
}
.ccm-page .scanner-overlay::before,
.ccm-page .scanner-overlay::after {
  content: '';
  position: absolute;
  width: 36px;
  height: 36px;
  border-color: #00c850;
  border-style: solid;
}
.ccm-page .scanner-overlay::before {
  top: 14px;
  left: 14px;
  border-width: 3px 0 0 3px;
}
.ccm-page .scanner-overlay::after {
  bottom: 14px;
  right: 14px;
  border-width: 0 3px 3px 0;
}
.ccm-page .status-badge {
  display: inline-block;
  font-weight: 700;
  font-size: 0.78rem;
  white-space: nowrap;
  padding: 0.25rem 0.7rem;
  border-radius: 20px;
}
.ccm-page .status-badge.status-active {
  background: var(--color_positive_bg);
  color: var(--color_positive);
}
.ccm-page .status-badge.status-expired {
  background: var(--color_negative_bg);
  color: var(--color_negative);
}
.ccm-page .balance-amount {
  font-weight: var(--font_weight-bold);
  font-size: var(--font_size-2xl);
  margin: 0;
}
.ccm-page .balance-expiry {
  color: var(--color_text-grey);
}
.ccm-page #state-idle #input-lastname,
.ccm-page #state-idle #input-ni {
  letter-spacing: 0.05em;
}
.ccm-page .items-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}
.ccm-page .items-list .item-row {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  background: #fff;
  padding: var(--spacing-xs) var(--spacing-xs);
  border: 1px solid var(--color_border);
  border-radius: var(--radius-sm);
}
.ccm-page .items-list .item-row-info {
  flex: 1;
  min-width: 0;
}
.ccm-page .items-list .item-row-name {
  font-weight: var(--font_weight-bold);
  font-size: var(--font_size);
}
.ccm-page .items-list .item-row-period {
  font-size: 0.75rem;
  color: var(--color_positive);
  margin-top: 0.1rem;
}
.ccm-page .items-list .item-row-qty {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.ccm-page .items-list .qty-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color_grey-200);
  font-size: 1.1rem;
  font-weight: var(--font_weight-bold);
  border: 1px solid var(--color_border);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.ccm-page .items-list .qty-btn:active {
  background: var(--color_grey-400);
}
.ccm-page .items-list .qty-val {
  min-width: 28px;
  font-weight: var(--font_weight-bold);
  font-size: var(--font_size);
  text-align: center;
}
.ccm-page .sale-error {
  display: none;
  background: var(--color_negative_bg);
  color: var(--color_negative);
  border-radius: var(--radius-sm);
  padding: 0.6rem 0.9rem;
  font-size: var(--font_size);
}
.ccm-page .amount-display {
  font-weight: var(--font_weight-bold);
  font-size: var(--font-size-48);
  text-align: center;
  letter-spacing: 0.02em;
  color: var(--color_text-dark);
}
.ccm-page .amount-display.zero {
  color: var(--color_grey-500);
}
.ccm-page .keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}
.ccm-page .keypad .key {
  background: var(--color_grey-200);
  padding: 1rem 0;
  border: none;
  border-radius: var(--radius-sm);
  font-weight: var(--font_weight-bold);
  font-size: var(--font-size-24);
  cursor: pointer;
  transition: background 0.1s;
  -webkit-tap-highlight-color: transparent;
}
.ccm-page .keypad .key:active {
  background: var(--color_grey-400);
}
.ccm-page .keypad .key.key-clear {
  background: #fff3cd;
}
.ccm-page .page-footer {
  position: fixed;
  bottom: 71px;
  left: 0;
  width: 100%;
  flex: 0 0 auto;
  background: #1a1a2e;
  color: #fff;
  padding: 0.6rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.ccm-page .footer-label {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}
.ccm-page .footer-select {
  flex: 1;
  max-width: 260px;
  padding: 0.35rem 0.6rem;
  border-radius: 8px;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
}
.ccm-page .footer-select option {
  color: #000;
  background: #fff;
}
.ccm-page .footer-shop-name {
  font-weight: 700;
  font-size: 0.95rem;
}
.ccm-page .footer-no-shop {
  color: #ffc107;
  font-size: 0.85rem;
}
.ccm-page .sr-only,
.ccm-page .visually-hidden {
  width: 1px;
  height: 1px;
  position: absolute !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  padding: 0;
  border: 0;
  margin: -1px;
}
.cke_contents,
.cke_source {
  min-height: 400px;
}
.ccm-edit-mode-title-notch-wrapper {
  background: repeating-linear-gradient(-45deg, #fff, #fff 10px, #eee 10px, #eee 20px);
}
div.ccm-block-edit.ccm-block-edit-container {
  padding: 0;
  margin-bottom: 0;
}
ul.ccm-edit-mode-title-notch {
  margin-top: 10px;
}
ul.ccm-edit-mode-title-notch li {
  margin: 0;
}
ul.ccm-edit-mode-title-notch.ccm-edit-mode-title-notch-container {
  margin-bottom: 0;
}
