.establishment-workspace[hidden] {
  display: none !important;
}
.kiosk-header {
  grid-template-columns: 218px 1fr 148px;
  min-height: 86px;
  padding: 7px 20px;
}
.kiosk-header .kiosk-logos {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
}
.kiosk-header .kiosk-logos figure { display: grid; justify-items: center; margin: 0; min-width: 0; }
.kiosk-header .kiosk-logos figcaption { margin-top: -2px; color: #fff; font-size: .43rem; font-weight: 900; line-height: 1; text-align: center; white-space: nowrap; }
.kiosk-header .kiosk-logos img {
  width: 62px;
  height: 62px;
  padding: 3px;
  object-fit: contain;
  filter: drop-shadow(0 3px 5px rgba(0,0,0,.42));
}
.kiosk-header .kiosk-logos .station-logo { width: 58px; }
.kiosk-header .kiosk-title { text-align: center; }
.kiosk-header .kiosk-title h1 span,
.kiosk-header .kiosk-title h1 small { display: block; }
.kiosk-header .kiosk-title h1 span { font-size: 1.18em; line-height: .95; }
.kiosk-header .kiosk-title h1 small { margin-top: 3px; font-size: .63em; line-height: 1; }
.kiosk-header time > small { display: block; margin-bottom: 4px; padding-bottom: 4px; border-bottom: 1px solid #6e85a2; font-size: .58rem; font-weight: 900; letter-spacing: .04em; }
.kiosk-header time {
  min-width: 132px;
  padding: 8px 10px;
  border: 1px solid #6380a3;
  background: linear-gradient(180deg,#0b2c53,#071d39);
  box-shadow: inset 0 1px rgba(255,255,255,.08),0 3px 10px rgba(0,0,0,.2);
}
.kiosk-header time b { font-size: 1.12rem; font-variant-numeric: tabular-nums; }
.kiosk-header time span { font-size: .68rem; line-height: 1.25; }
@media (max-height: 760px) and (min-width: 701px) {
  .kiosk-header { min-height: 76px; }
  .kiosk-header .kiosk-logos img { width: 54px; height: 54px; }
  .kiosk-header .kiosk-logos .station-logo { width: 50px; }
}
.registration-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0 16px 7px;
  padding: 0;
  list-style: none;
}
.registration-steps li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 9px 58px 9px 10px;
  border: 1px solid #cfdae8;
  border-radius: 8px;
  background: #fff;
  color: #536982;
}
.registration-steps li > b {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #e8eef6;
  color: #39526f;
  font-size: .88rem;
}
.registration-steps li span {
  display: grid;
  min-width: 0;
}
.registration-steps strong {
  color: #183556;
  font-size: .82rem;
}
.registration-steps small {
  overflow: hidden;
  color: #718198;
  font-size: .66rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.registration-steps li::after {
  content: attr(data-state);
  position: absolute;
  top: 6px;
  right: 7px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #e8eef6;
  color: #61748a;
  font-size: .5rem;
  font-weight: 900;
  letter-spacing: .05em;
}
.registration-steps li.active {
  border: 2px solid #126ae1;
  background: #dceeff;
  box-shadow: inset 5px 0 #126ae1, 0 2px 8px rgba(18,106,225,.18);
}
.registration-steps li.active::after { background: #ffca28; color: #102c4f; }
.registration-steps li.active > b {
  background: #287ce6;
  color: #fff;
}
.registration-steps li.completed {
  border-color: #8bd0a4;
  background: #eefaf2;
}
.registration-steps li.completed::after { background: #159447; color: #fff; }
.registration-steps li.completed > b {
  background: #159447;
  color: #fff;
}
.current-step-guide {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 16px 7px;
  padding: 6px 11px;
  border: 1px solid #f0b429;
  border-left: 5px solid #f0a500;
  border-radius: 7px;
  background: #fff7d8;
  color: #203b5b;
  font-size: .7rem;
}
.current-step-guide b { color: #a65000; white-space: nowrap; }
.current-step-guide span { font-weight: 700; }
.identity-panel { border-left: 4px solid #287ce6; }
.customer-classifications { border-left: 4px solid #8f55ba; }
.establishment-workspace,
.new-application-establishment { border-left-color: #e39a17; }
@media (max-width: 800px) {
  .registration-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .kiosk-header { grid-template-columns: 132px 1fr; }
  .kiosk-header .kiosk-logos { gap: 3px; }
  .kiosk-header .kiosk-logos img { width: 42px; height: 42px; padding: 1px; }
  .kiosk-header .kiosk-logos .station-logo { width: 39px; }
}
@media (orientation: portrait) and (max-width: 1000px) {
  .kiosk { min-height: 100dvh; }
  .kiosk-header {
    grid-template-columns: 170px minmax(0,1fr) 124px;
    min-height: 80px;
    padding: 7px 12px;
  }
  .kiosk-header .kiosk-logos { gap: 5px; }
  .kiosk-header .kiosk-logos img { width: 50px; height: 50px; padding: 2px; }
  .kiosk-header .kiosk-logos .station-logo { width: 47px; }
  .kiosk-header h1 { font-size: clamp(1.05rem,3.2vw,1.65rem); line-height: 1.1; }
  .kiosk-header strong { font-size: clamp(.72rem,2.2vw,1rem); }
  .kiosk-header time { display: block; min-width: 116px; padding: 7px; }
  .kiosk-header time b { font-size: .9rem; }
  .kiosk-header time span { font-size: .6rem; }
  .kiosk-intro { padding: 8px 14px 4px; }
  .registration-steps { grid-template-columns: 1fr 1fr; margin-right: 12px; margin-left: 12px; }
  .registration-steps li { min-height: 58px; padding-right: 54px; }
  .registration-steps small { display: block; white-space: normal; line-height: 1.2; }
  .current-step-guide { margin-right: 12px; margin-left: 12px; font-size: .72rem; }
  .kiosk form { padding-right: 12px; padding-left: 12px; }
  .identity-panel { grid-template-columns: 1fr; }
  .identity-panel .nickname-field { grid-column: auto; }
  .customer-classifications { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .customer-classifications label { min-height: 68px; }
  .establishment-workspace { grid-template-columns: 1fr; }
  .selected-establishments { min-height: 96px; }
  .action-bar {
    position: sticky;
    z-index: 20;
    bottom: 6px;
    padding: 7px;
    border: 1px solid #d6e0eb;
    border-radius: 9px;
    background: rgba(247,249,252,.96);
    box-shadow: 0 -5px 18px rgba(6,26,56,.12);
  }
  .kiosk-footer { grid-template-columns: 170px 1fr; }
  .kiosk-footer > small { display: none; }
}
@media (orientation: portrait) and (max-width: 560px) {
  .kiosk-header { grid-template-columns: 116px 1fr; }
  .kiosk-header .kiosk-logos { gap: 2px; }
  .kiosk-header .kiosk-logos img { width: 37px; height: 37px; padding: 0; }
  .kiosk-header .kiosk-logos .station-logo { width: 34px; }
  .kiosk-header time { display: none; }
  .registration-steps { grid-template-columns: 1fr; }
  .registration-steps li { min-height: 52px; }
  .customer-classifications { grid-template-columns: 1fr 1fr; }
  .current-step-guide { align-items: flex-start; flex-direction: column; gap: 2px; }
  .action-bar { grid-template-columns: 1fr; }
}
@media (max-height: 760px) and (min-width: 801px) {
  .registration-steps li { padding-top: 5px; padding-bottom: 5px; }
  .registration-steps small { display: none; }
  .current-step-guide { padding-top: 4px; padding-bottom: 4px; }
}
.ticket-confirmation[hidden] { display: none !important; }
.ticket-confirmation {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(3, 25, 53, .88);
  backdrop-filter: blur(5px);
}
.ticket-confirmation-card {
  width: min(620px, 94vw);
  padding: 28px;
  border: 3px solid #f2bd22;
  border-radius: 22px;
  background: #fff;
  color: #102c4f;
  text-align: center;
  box-shadow: 0 24px 70px rgba(0,0,0,.4);
}
.success-mark { display: grid; width: 62px; height: 62px; margin: 0 auto 10px; place-items: center; border-radius: 50%; background: #119948; color: #fff; font-size: 2rem; font-weight: 900; }
.success-label { margin: 0; color: #128342; font-size: .9rem; font-weight: 900; letter-spacing: .08em; }
.ticket-confirmation-card h2 { margin: 8px 0 0; font-size: 1.4rem; }
#confirmed-queue-number { display: block; margin: 8px 0; color: #e29700; font-size: clamp(4.5rem, 10vw, 7rem); line-height: 1; letter-spacing: .03em; }
#confirmed-ticket-status { margin: 12px 0 20px; font-size: 1rem; font-weight: 700; }
.confirmation-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
.confirmation-actions:has(#confirmation-reprint:not([hidden])) { grid-template-columns: 1fr 1fr; }
.confirmation-actions button { min-height: 56px; border: 0; border-radius: 10px; background: #126ae1; color: #fff; font-size: .95rem; font-weight: 900; }
#confirmation-reprint { background: #dd8400; }
.new-application-establishment[hidden] {
  display: none !important;
}
.establishment-results button small {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.establishment-results button small > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.establishment-status {
  display: inline-flex;
  flex: none;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e7f6ec;
  color: #13723b;
  font-size: .56rem;
  line-height: 1.4;
  letter-spacing: .025em;
  white-space: nowrap;
}
.chosen-establishment small,
.selected-source {
  color: #496987;
  font-weight: 700;
}
.establishment-address {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: #62748c;
  font-size: .62rem;
  font-style: normal;
  font-weight: 650;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.new-application-establishment {
  margin-top: 7px;
  padding: 10px 12px;
  border: 1px solid #b9cce3;
  border-left: 4px solid #287ce6;
  border-radius: 9px;
  background: #fff;
}
.new-application-establishment label {
  gap: 5px;
}
.new-application-establishment input {
  width: 100%;
  min-height: 43px;
  padding: 8px 12px;
  border: 1px solid #c8d6e7;
  border-radius: 7px;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 700;
}
.new-application-establishment input:focus {
  outline: 0;
  border-color: #287ce6;
  box-shadow: 0 0 0 3px #287ce620;
}
.new-application-establishment p {
  margin: 5px 0 0;
  color: #667a93;
  font-size: .65rem;
}
.panel-step-heading { display: none; }
.customer-classifications label input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.customer-classifications label:has(input:checked) { border: 2px solid #159447; background: #fff; color: #079342; box-shadow: 0 2px 8px rgba(21,148,71,.16); }
.customer-classifications label:has(input:checked)::after { content: '✓'; position: absolute; top: 6px; right: 6px; display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: #079342; color: #fff; font-size: .82rem; font-weight: 950; }
.customer-classifications label:nth-of-type(1) { color: #079342; }
.customer-classifications label:nth-of-type(2) { color: #6732a5; }
.customer-classifications label:nth-of-type(3) { color: #075bc7; }
.customer-classifications label:nth-of-type(4) { color: #eb2870; }
.customer-classifications label:nth-of-type(5) { color: #f18400; }
.customer-classifications label b { color: #122747; }
.kiosk-header .kiosk-logos figcaption { display: none; }

/* Device-fitted registration composition. The page itself never scrolls;
   long database matches remain scrollable inside the search result list. */
.registration-review {
  padding: 10px;
  border: 1px solid #bca6df;
  border-left: 4px solid #672aa7;
  border-radius: 10px;
  background: linear-gradient(145deg,#fff,#fbf8ff);
}
.registration-review header { display: flex; align-items: center; gap: 9px; padding-bottom: 7px; border-bottom: 1px solid #dcd2eb; }
.registration-review header > b { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 8px; background: #672aa7; color: #fff; font-size: 1.35rem; }
.registration-review h3 { margin: 0; color: #672aa7; text-transform: uppercase; font-size: .88rem; }
.registration-review header p { margin: 2px 0 0; color: #536982; font-size: .62rem; }
.registration-review dl { margin: 5px 0; }
.registration-review dl > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 2px; border-bottom: 1px solid #e6e0ee; }
.registration-review dt { color: #263b59; font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.registration-review dd { margin: 0; overflow: hidden; color: #172b4a; font-size: .68rem; font-weight: 900; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.review-reminder { display: flex; align-items: center; gap: 8px; margin: 7px 0 0; padding: 7px; border: 1px solid #d7c9eb; border-radius: 7px; background: #fff; color: #344866; font-size: .65rem; font-weight: 750; }
.review-reminder > b { display: grid; flex: 0 0 29px; width: 29px; height: 29px; place-items: center; border: 2px solid #672aa7; border-radius: 50%; color: #672aa7; font-size: 1rem; }

@media (orientation: landscape) and (min-width: 900px) {
  .purpose-welcome {
    grid-column: 1 / span 8;
    grid-row: 2;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    place-content: center;
    padding: 40px 8%;
    border: 1px solid #b8cee6;
    border-left: 5px solid #287ce6;
    border-radius: 12px;
    background: linear-gradient(135deg,#fff 0%,#f0f6ff 100%);
    text-align: left;
  }
  .purpose-welcome[hidden] { display: none !important; }
  .purpose-welcome > span { color: #287ce6; font-size: .72rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
  .purpose-welcome h2 { margin: 7px 0 5px; color: #102f56; font-size: 1.75rem; line-height: 1.1; }
  .purpose-welcome > p { margin: 0 0 24px; color: #526b87; font-size: .9rem; line-height: 1.4; }
  .purpose-welcome div { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
  .purpose-welcome article { display: grid; grid-template-columns: 38px 1fr; gap: 9px; align-items: center; padding: 13px; border: 1px solid #d2dfed; border-radius: 10px; background: #fff; }
  .purpose-welcome article b { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #e6f0ff; color: #1769d2; font-size: 1rem; }
  .purpose-welcome article strong { color: #183553; font-size: .82rem; letter-spacing: .01em; }
  .purpose-welcome article small { display: block; margin-top: 3px; color: #687f98; font-size: .64rem; line-height: 1.3; }
  html, body.kiosk { height: 100%; overflow: hidden; }
  .kiosk-header { flex: none; min-height: 88px; }
  .kiosk main { min-height: 0; padding: 0 12px; }
  .kiosk-card { height: 100%; border-radius: 10px; }
  .kiosk-intro, .registration-steps, .current-step-guide { display: none; }
  .kiosk form {
    display: grid;
    height: 100%;
    min-height: 0;
    padding: 7px;
    grid-template-columns: repeat(12,minmax(0,1fr));
    grid-template-rows: auto minmax(0,1fr) auto auto;
    gap: 7px;
  }
  .kiosk-content, .form-column { display: contents; }
  .kiosk-header .kiosk-title { text-align: left; }
  .identity-panel { grid-column: 1 / span 6; grid-row: 1; padding: 43px 12px 10px; position: relative; border-color: #91b8eb; background: linear-gradient(145deg,#fff,#eff6ff); }
  .identity-panel > label > span:first-child { font-size: .82rem; }
  .identity-panel .control input, .identity-panel .control select { min-height: 48px; font-size: .95rem; }
  .identity-panel::before, .identity-panel::after, .customer-classifications::before, .customer-classifications::after, .establishment-workspace::before, .establishment-workspace::after { content: none; }
  .panel-step-heading { position: absolute; top: 7px; left: 10px; display: flex; align-items: center; gap: 9px; }
  .panel-step-heading > b { display: grid; width: 38px; height: 34px; place-items: center; border-radius: 8px; background: #1769d2; color: #fff; font-size: 1.4rem; font-weight: 950; }
  .panel-step-heading > span { display: grid; }
  .panel-step-heading strong { color: #1769d2; font-size: .98rem; line-height: 1; text-transform: uppercase; }
  .panel-step-heading small { margin-top: 3px; color: #3f526d; font-size: .58rem; }
  .panel-step-heading em { font-size: .68em; font-style: normal; }
  .customer-classifications { grid-column: 7 / span 6; grid-row: 1; position: relative; padding: 43px 9px 8px; border-color: #8fcfa4; border-left-color: #14924a; background: linear-gradient(145deg,#fff,#f0fbf3); }
  .customer-classifications .panel-step-heading > b { background: #14924a; }
  .customer-classifications .panel-step-heading strong { color: #158141; }
  .customer-classifications legend { display: none; }
  .customer-classifications label { min-height: 96px; }
  .customer-classifications label svg { width: 54px; height: 54px; }
  .customer-classifications label b { font-size: .8rem; line-height: 1.05; }
  .establishment-workspace { grid-column: 1 / span 8; grid-row: 2; min-height: 0; position: relative; padding: 46px 7px 7px; border: 1px solid #f2a76f; border-left: 4px solid #ef640e; border-radius: 10px; background: linear-gradient(145deg,#fff,#fff8f1); }
  .establishment-workspace .panel-step-heading > b { background: #ef640e; }
  .establishment-workspace .panel-step-heading strong { color: #e75508; }
  .establishment-panel, .selected-panel { height: 100%; min-height: 0; overflow: hidden; border-color: #efc69e; }
  .selected-establishments { height: calc(100% - 31px); min-height: 0; overflow: auto; }
  .establishment-results { max-height: min(220px,35vh); }
  .new-application-establishment { grid-column: 1 / span 8; grid-row: 2; align-self: start; }
  .registration-review { grid-column: 9 / span 4; grid-row: 2 / span 2; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
  .registration-review .action-bar { width: 100%; margin: auto 0 0; padding-top: 8px; grid-template-columns: .72fr 1.28fr; gap: 6px; }
  .action-bar button { min-height: 55px; font-size: .72rem; }
  .register-button { font-size: .76rem !important; }
  .printer-warning, .kiosk #message, .reprint-button { grid-column: 1 / -1; margin: 0; min-height: 0; padding: 3px; font-size: .65rem; }
  .kiosk-footer { flex: none; min-height: 34px; padding-top: 2px; padding-bottom: 2px; }
}

@media (orientation: portrait) and (max-width: 1000px) {
  html, body.kiosk { height: 100%; overflow: hidden; }
  .kiosk-header { flex: none; min-height: 82px; }
  .kiosk main { min-height: 0; padding: 0 6px; }
  .kiosk-card { height: 100%; border-radius: 8px; }
  .kiosk-intro, .registration-steps, .current-step-guide { display: none; }
  .kiosk form {
    display: grid;
    height: 100%;
    min-height: 0;
    padding: 4px;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto minmax(0,1fr) auto auto auto;
    gap: 3px;
  }
  .kiosk-content, .form-column { display: contents; }
  .identity-panel { grid-column: 1; grid-row: 1; grid-template-columns: 1fr 1fr; gap: 7px; padding: 31px 8px 7px; position: relative; }
  .identity-panel::before, .identity-panel::after, .customer-classifications::before, .customer-classifications::after, .establishment-workspace::before, .establishment-workspace::after { content: none; }
  .panel-step-heading { position: absolute; top: 5px; left: 8px; display: flex; align-items: center; gap: 6px; }
  .panel-step-heading > b { display: grid; width: 36px; height: 34px; place-items: center; border-radius: 8px; background: #1769d2; color: #fff; font-size: 1.25rem; font-weight: 950; }
  .panel-step-heading > span { display: grid; }
  .panel-step-heading strong { color: #1769d2; font-size: .86rem; line-height: 1; text-transform: uppercase; }
  .panel-step-heading small { margin-top: 3px; color: #3f526d; font-size: .53rem; }
  .panel-step-heading em { font-size: .68em; font-style: normal; }
  .identity-panel .nickname-field { grid-column: auto; }
  .kiosk .control input, .kiosk .control select { min-height: 37px; font-size: .75rem; }
  .customer-classifications { grid-column: 1; grid-row: 2; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; padding: 42px 7px 7px; position: relative; border-left-color: #14924a; }
  .customer-classifications .panel-step-heading > b { background: #14924a; }
  .customer-classifications .panel-step-heading strong { color: #158141; }
  .customer-classifications legend { display: none; }
  .customer-classifications label { min-width: 0; min-height: 94px; padding: 8px 2px 5px; }
  .customer-classifications label svg { width: 44px; height: 44px; }
  .customer-classifications label b { font-size: .64rem; line-height: 1.05; }
  .customer-classifications label:has(input:checked)::after { top: 5px; right: 5px; width: 20px; height: 20px; font-size: .7rem; }
  .establishment-workspace { grid-column: 1; grid-row: 3; grid-template-columns: 1fr 1fr; min-height: 0; position: relative; padding: 35px 5px 5px; gap: 5px; overflow: hidden; border: 1px solid #f2a76f; border-left: 4px solid #ef640e; border-radius: 9px; background: #fffaf5; }
  .establishment-workspace .panel-step-heading > b { background: #ef640e; }
  .establishment-workspace .panel-step-heading strong { color: #e75508; }
  .establishment-panel, .selected-panel { height: 100%; min-height: 0; padding: 6px; overflow: hidden; border-color: #efc69e; }
  .est-heading h3 { font-size: .63rem; }
  .est-heading h3 b { padding: 2px 4px; font-size: .48rem; }
  .search-label > span { font-size: .58rem; }
  .establishment-panel input { min-height: 34px; font-size: .65rem; }
  .manual-prompt { padding: 3px 5px; font-size: .52rem; }
  .manual-prompt button, #back-to-database { min-height: 25px; padding: 3px 5px; font-size: .5rem; }
  .add-est { min-height: 30px; font-size: .6rem; }
  .selected-establishments { height: calc(100% - 25px); min-height: 0; overflow: auto; }
  .selected-empty { min-height: 58px; }
  .establishment-results { top: 43px; max-height: min(190px,25vh); }
  .new-application-establishment { grid-column: 1; grid-row: 3; align-self: start; margin: 0; }
  .purpose-welcome {
    grid-column: 1;
    grid-row: 3;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px 12px;
    overflow: hidden;
    border: 1px solid #b8cee6;
    border-left: 4px solid #287ce6;
    border-radius: 9px;
    background: linear-gradient(135deg,#fff,#f0f6ff);
  }
  .purpose-welcome[hidden] { display: none !important; }
  .purpose-welcome > span { color: #287ce6; font-size: .48rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  .purpose-welcome h2 { margin: 3px 0 2px; color: #102f56; font-size: .9rem; line-height: 1.05; }
  .purpose-welcome > p { margin: 0 0 7px; color: #526b87; font-size: .52rem; line-height: 1.25; }
  .purpose-welcome div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .purpose-welcome article { display: grid; grid-template-columns: 23px 1fr; align-items: center; gap: 5px; min-width: 0; padding: 6px; border: 1px solid #d2dfed; border-radius: 7px; background: #fff; }
  .purpose-welcome article b { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: #e6f0ff; color: #1769d2; font-size: .62rem; }
  .purpose-welcome article p { min-width: 0; margin: 0; }
  .purpose-welcome article strong { display: block; color: #183553; font-size: .51rem; line-height: 1.1; }
  .purpose-welcome article small { display: block; margin-top: 2px; color: #687f98; font-size: .42rem; line-height: 1.15; }
  .registration-review { grid-column: 1; grid-row: 4 / span 2; padding: 5px 7px; display: flex; flex-direction: column; }
  .registration-review header { padding-bottom: 3px; }
  .registration-review header > b { flex-basis: 29px; width: 29px; height: 29px; font-size: 1rem; }
  .registration-review h3 { font-size: .72rem; }
  .registration-review header p { font-size: .5rem; }
  .registration-review dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; margin: 2px 0; }
  .registration-review dl > div { padding: 2px; }
  .registration-review dt, .registration-review dd { font-size: .52rem; }
  .review-reminder { margin: 3px 0 0; padding: 3px 5px; font-size: .52rem; }
  .review-reminder > b { flex-basis: 22px; width: 22px; height: 22px; font-size: .72rem; }
  .registration-review .action-bar { position: static; width: 100%; grid-template-columns: .72fr 1.55fr; margin: 4px 0 0; padding: 4px 0 0; border: 0; border-top: 1px solid #e0d7eb; background: none; box-shadow: none; gap: 5px; }
  .action-bar button { min-height: 39px; font-size: .67rem; }
  .register-button { font-size: .7rem; }
  .printer-warning, .kiosk #message, .reprint-button { grid-column: 1; grid-row: 6; margin: 0; min-height: 0; padding: 2px; font-size: .52rem; }
  .kiosk-footer { flex: none; min-height: 25px; padding: 2px 8px; grid-template-columns: 140px 1fr; }
  .kiosk-footer p { display: block; margin: 0; font-size: .54rem; }
}
@media (orientation: portrait) and (max-width: 560px) {
  .kiosk-header { grid-template-columns: 153px minmax(0,1fr) 108px; min-height: 82px; gap: 3px; padding: 5px 7px; }
  .kiosk-header .kiosk-logos { gap: 1px; }
  .kiosk-header .kiosk-logos figure { width: 50px; }
  .kiosk-header .kiosk-logos img { width: 36px; height: 36px; }
  .kiosk-header .kiosk-logos .station-logo { width: 33px; }
  .kiosk-header .kiosk-logos figcaption { max-width: 50px; overflow: hidden; font-size: .32rem; text-overflow: ellipsis; }
  .kiosk-header .kiosk-title { text-align: left; }
  .kiosk-header .kiosk-title h1 span { font-size: .96rem; }
  .kiosk-header .kiosk-title h1 small { font-size: .53rem; }
  .kiosk-header .kiosk-title strong { margin-top: 3px; font-size: .56rem; letter-spacing: .025em; }
  .kiosk-header time { display: block; min-width: 0; padding: 5px 4px; }
  .kiosk-header time > small { margin-bottom: 2px; padding-bottom: 2px; font-size: .43rem; }
  .kiosk-header time b { font-size: .76rem; }
  .kiosk-header time span { margin-top: 2px; font-size: .47rem; line-height: 1.15; }
}
