.pos-admin{margin-top:24px;overflow:hidden}.pos-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 0 20px}.pos-admin-hero h2{margin:.2rem 0;font-size:2rem}.pos-admin-hero p{max-width:760px;color:#aebbad}.pos-primary,.pos-checkout{background:linear-gradient(135deg,#52e68c,#48bdf2)!important;color:#04120b!important;border:0!important;font-weight:900}.pos-register-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:16px 0 22px}.pos-register-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border:1px solid #2d4938;border-radius:14px;background:#111b15}.pos-register-card strong,.pos-register-card span{display:block}.pos-register-card span{color:#9caa9f;margin-top:5px}.pos-admin-tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid #2d4938;padding-bottom:8px}.pos-admin-tabs button{white-space:nowrap;background:transparent;border-color:transparent;color:#9eaaa1}.pos-admin-tabs button.active{background:#1d3325;color:#7ff0a1;border-color:#3c7653}.pos-admin-pages>section{display:none;padding:20px 0}.pos-admin-pages>section.active{display:block}.pos-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pos-metrics article,.pos-back-grid article{background:#111b15;border:1px solid #2d4938;border-radius:14px;padding:18px}.pos-metrics span,.pos-metrics strong{display:block}.pos-metrics strong{font-size:1.8rem;margin-top:8px}.pos-back-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.pos-form{display:grid;gap:10px}.pos-form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;margin:15px 0}.pos-inline{display:flex;align-items:end;gap:10px;margin:12px 0}.pos-form input,.pos-form select,.pos-inline input,.pos-order input{width:100%}.pos-table-wrap{width:100%;overflow:auto;margin-top:14px;border:1px solid #2d4938;border-radius:12px}.pos-data-table{width:100%;border-collapse:collapse;min-width:720px}.pos-data-table th,.pos-data-table td{padding:11px 13px;border-bottom:1px solid #263d30;text-align:left;vertical-align:middle}.pos-data-table th{color:#98a79c;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;background:#101a14}.pos-data-table tr:last-child td{border-bottom:0}.pos-receipt{white-space:pre-wrap;max-height:420px;overflow:auto;background:#09110c;border-radius:12px;padding:14px}
.pos-fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;padding:0;border:0;background:#eef2ee;color:#172018}.pos-fullscreen::backdrop{background:#000}.pos-shell{height:100%;display:grid;grid-template-rows:auto 1fr}.pos-topbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:#17251c;color:#fff;border-bottom:1px solid #32483a}.pos-topbar img{width:42px;height:42px;object-fit:contain}.pos-topbar strong,.pos-topbar span{display:block}.pos-topbar .grow{flex:1}.pos-brand span,.pos-topbar>div span{color:#aebbb1;font-size:.8rem}.pos-pill{display:inline-flex!important;align-items:center;padding:7px 11px;border-radius:999px;background:#e7ece8;color:#243129;font-size:.75rem;font-weight:800}.pos-topbar .pos-pill{background:#2a3d30;color:#eaf1eb}.pos-pill.good{background:#dff7e7;color:#166333}.pos-pill.bad{background:#ffe1de;color:#9a241b}.pos-app{display:grid;grid-template-columns:84px 1fr;min-height:0}.pos-rail{background:#17251c;padding:12px 8px;display:flex;flex-direction:column;gap:7px}.pos-rail button{min-height:68px;padding:7px 3px;background:transparent;border:1px solid transparent;color:#99a99d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.pos-rail button span{font-size:1.35rem}.pos-rail button.active{background:#2d4937;color:#7df0a0;border-color:#47785a}.pos-main{overflow:auto;padding:22px;background:#f3f6f3}.pos-main h1,.pos-main h2,.pos-main h3{color:#172018}.pos-main button{background:#fff;color:#172018;border:1px solid #cbd5cd}.pos-main button:hover{border-color:#46b875}.pos-screen-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.pos-screen-head h1{margin:0;font-size:1.9rem}.pos-screen-head p{margin:4px 0;color:#667269}.pos-lock{max-width:430px;margin:8vh auto;padding:30px;background:#fff;border:1px solid #d4ddd5;border-radius:18px;text-align:center;box-shadow:0 16px 50px #18322118}.pos-lock img{width:90px;height:90px;object-fit:contain}.pos-open-drawer{background:#fff3ce;border:1px solid #e5c66d;padding:12px;border-radius:12px;margin-bottom:14px}.pos-queue{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pos-queue section{background:#fff;border:1px solid #d5ddd6;border-radius:14px;padding:14px;min-height:330px}.pos-queue h3{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:3px solid #57cf82}.pos-queue h3 span{background:#e8efe9;border-radius:999px;padding:2px 8px}.pos-queue article{display:grid;gap:7px;padding:12px;border:1px solid #dce3dd;border-radius:10px;margin-top:10px}.pos-queue article small{color:#69746b}.pos-guests{display:grid;grid-template-columns:minmax(480px,1.5fr) minmax(300px,.8fr);gap:16px}.pos-guests>section,.pos-guests>aside,.pos-order>section,.pos-order>aside{background:#fff;border:1px solid #d5ddd6;border-radius:14px;padding:16px}.pos-search{width:100%;padding:13px 15px;font-size:1rem;background:#fff!important;color:#172018!important;border:1px solid #c8d2ca!important}.pos-guests #guestList{margin-top:10px;max-height:55vh;overflow:auto}.pos-guests #guestList button{width:100%;display:flex;justify-content:space-between;text-align:left;border-width:0 0 1px;border-radius:0;padding:14px}.pos-guests #guestList span{color:#69746b}.pos-guest-form{margin-top:15px;padding-top:15px;border-top:1px solid #d5ddd6}.pos-profile h2{font-size:1.6rem;margin:.2rem 0}.pos-profile dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0}.pos-profile dt{color:#6a756d}.pos-profile dd{text-align:right;margin:0;font-weight:700}.pos-profile button{width:100%;margin-top:8px}.pos-empty-detail,.pos-empty-cart{text-align:center;color:#788279;padding:50px 20px}.pos-empty-detail span,.pos-empty-cart span{font-size:3rem}.pos-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:11px;margin-top:14px}.pos-product{min-height:150px;padding:13px!important;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.pos-product span:first-child{font-size:.72rem;text-transform:uppercase;color:#368759}.pos-product strong{font-size:1rem}.pos-product small,.pos-product em{color:#68746b;font-style:normal}.pos-product b{font-size:1.1rem;margin-top:auto}.pos-product-grid.compact{max-height:55vh;overflow:auto}.pos-order{display:grid;grid-template-columns:minmax(500px,1.5fr) minmax(320px,.75fr);gap:14px}.pos-order-patient{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:12px;border-bottom:1px solid #dde4de}.pos-order-patient h2,.pos-order-patient p{margin:3px 0}.pos-cart-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #dfe5e0}.pos-cart-line strong,.pos-cart-line small{display:block}.pos-cart-line small{color:#69746b;margin-top:4px}.pos-total{display:flex;align-items:center;justify-content:space-between;margin:18px 0;font-size:1.2rem}.pos-total strong{font-size:2rem}.pos-checkout{width:100%;min-height:55px;margin:12px 0;font-size:1.05rem}.pos-register-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pos-register-tabs article{background:#fff;border:1px solid #d5ddd6;border-radius:14px;padding:22px}.pos-register-tabs span,.pos-register-tabs strong{display:block}.pos-register-tabs strong{font-size:1.5rem;margin-top:8px}.pos-register-actions{display:flex;gap:10px;margin-top:16px}
@media(max-width:950px){.pos-admin-hero,.pos-screen-head{align-items:flex-start;flex-direction:column}.pos-metrics{grid-template-columns:1fr 1fr}.pos-back-grid,.pos-guests,.pos-order{grid-template-columns:1fr}.pos-queue{grid-template-columns:1fr}.pos-app{grid-template-columns:64px 1fr}.pos-rail small{font-size:.65rem}.pos-topbar{gap:8px}.pos-topbar .pos-pill{display:none!important}.pos-main{padding:12px}}@media(max-width:600px){.pos-metrics{grid-template-columns:1fr}.pos-admin-tabs{display:grid;grid-template-columns:1fr 1fr}.pos-top-context{display:none}.pos-product-grid{grid-template-columns:1fr 1fr}}
.pos-page-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.pos-page-head h3,.pos-page-head p{margin:3px 0}.pos-register-subtabs{display:flex;gap:8px;border-bottom:1px solid #2d4938;margin:16px 0}.pos-register-subtabs button{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;color:#aebbad}.pos-register-subtabs button.active{color:#83efaa;border-bottom-color:#5cdf89}.pos-admin [data-register-page]{display:none}.pos-admin [data-register-page].active{display:block}.pos-register-filters{display:grid;grid-template-columns:minmax(190px,1fr) minmax(150px,.7fr) minmax(150px,.7fr) auto;gap:10px;align-items:end}.pos-register-overview-layout{display:grid;grid-template-columns:minmax(520px,1.5fr) minmax(240px,.65fr);gap:15px}.pos-register-overview-layout aside{margin-top:14px;background:#111b15;border:1px solid #2d4938;border-radius:12px;padding:16px}.pos-register-overview-layout aside h4{margin-top:0}.pos-register-overview-layout aside p{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #263d30;margin:0}.pos-help-card{max-width:700px;border:1px solid #2d4938;border-radius:12px;background:#111b15;padding:18px}.pos-help-card li{margin:8px 0}
@media(max-width:950px){.pos-page-head{align-items:flex-start;flex-direction:column}.pos-register-overview-layout{grid-template-columns:1fr}.pos-register-filters{grid-template-columns:1fr 1fr}}@media(max-width:600px){.pos-register-filters{grid-template-columns:1fr}}

.pos-line-actions{display:flex;align-items:center;gap:7px}.pos-line-actions button{padding:6px 9px}.pos-cart-head,.pos-applied-discount{display:flex;align-items:center;justify-content:space-between;gap:10px}.pos-discount-picker{padding:12px;background:#f3f6f3;border:1px solid #cad5cc;border-radius:10px;margin:12px 0;max-height:260px;overflow:auto}.pos-discount-picker button{width:100%;display:flex;justify-content:space-between;text-align:left;margin:6px 0}.pos-applied-discount{padding:10px;margin-top:10px;background:#e5f6e9;border-radius:9px;color:#176235}

.pos-payment-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;padding:14px;border:1px solid #c8d2ca;border-radius:12px}.pos-payment-choices legend{font-weight:900;padding:0 6px}.pos-payment-choices label{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:10px;border:2px solid #bdc9bf;border-radius:10px;background:#fff;font-weight:900;cursor:pointer}.pos-payment-choices label:has(input:checked){border-color:#229653;background:#dff7e7;color:#125d30}.pos-payment-choices input{width:auto!important;transform:scale(1.35)}.pos-discount-picker{display:block!important}.pos-form-wide{grid-column:1/-1}.pos-form textarea{width:100%;resize:vertical}

/* Tablet register scrolling and explicit checkout controls */
.pos-fullscreen{overflow-y:auto!important;-webkit-overflow-scrolling:touch}.pos-shell{height:auto!important;min-height:100vh}.pos-app{min-height:calc(100vh - 64px)}.pos-main{overflow-y:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:120px}.pos-guests>section,.pos-guests>aside{min-height:0}.pos-discount-picker button.selected{border:2px solid #229653!important;background:#dff7e7!important}.pos-manual-discount,.pos-charge-amount{display:grid;gap:7px;margin:12px 0;font-weight:900}.pos-manual-discount input,.pos-charge-amount input{min-height:52px;font-size:1.15rem;padding:10px;border:2px solid #9fb1a2;border-radius:9px;background:#fff;color:#172018}

.pos-insight-card{margin:14px 0;padding:14px;border:1px solid #9fc9aa;border-radius:12px;background:#effaf2}.pos-insight-card p{margin:7px 0}.pos-admin-pages{min-height:0}.pos-admin-pages>section{max-width:100%;overflow:visible}.pos-admin{overflow:visible!important}.pos-table-wrap{max-height:65vh;overflow:auto!important;-webkit-overflow-scrolling:touch}.pos-register-subtabs{overflow-x:auto}.pos-admin-tabs{position:sticky;top:0;z-index:4;background:#0d1711}

/* POS sections remain usable on register and back-office screens. */
.pos-admin{max-height:calc(100vh - 32px);overflow:auto;}
.pos-admin-pages,[data-admin-page],.pos-order>section,.pos-order>aside,.pos-register-overview-layout>div,.pos-register-overview-layout>aside{max-height:70vh;overflow:auto;}
.pos-admin-tabs,.pos-register-subtabs{position:sticky;top:0;z-index:2;background:var(--panel,#fff);overflow-x:auto;white-space:nowrap;}
.pos-admin-pages>section{height:calc(100vh - 250px);max-height:calc(100vh - 250px)!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;}
.pos-admin-pages>section *{max-width:100%;}
/* One bounded scrolling surface per register; inner forms grow naturally. */
#nexusRegister{height:100dvh!important;overflow:hidden!important;}
#nexusRegister .pos-shell{height:100%!important;min-height:0!important;}
#nexusRegister .pos-app{min-height:0!important;overflow:hidden;}
#nexusRegister .pos-main{min-height:0;overflow:auto!important;height:100%;box-sizing:border-box;}
#nexusRegister .pos-rail{overflow:auto;min-height:0;}
#nexusRegister .pos-guests>section,#nexusRegister .pos-guests>aside,#nexusRegister .pos-order>section,#nexusRegister .pos-order>aside{max-height:none!important;overflow:visible!important;}
.pos-register-actions{flex-wrap:wrap;}

/* Keep the register chrome fixed and give every POS screen one reliable
   touch-friendly vertical scrolling surface.  Earlier rules allowed the
   dialog itself to grow past the viewport, which trapped the lower fields. */
#nexusRegister.pos-fullscreen{
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}
#nexusRegister .pos-shell{
  height:100%!important;
  min-height:0!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  overflow:hidden!important;
}
#nexusRegister .pos-app{
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
#nexusRegister .pos-main{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0!important;
}
#nexusRegister #posLoginBox,
#nexusRegister #posRegisterStatus{
  flex:0 0 auto;
}
#nexusRegister #posScreen{
  flex:1 1 auto;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding:22px 22px 120px!important;
}
#nexusRegister #posScreen .pos-guests,
#nexusRegister #posScreen .pos-order,
#nexusRegister #posScreen .pos-queue,
#nexusRegister #posScreen .pos-register-tabs{
  min-height:min-content;
}

.pos-loyalty-presets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 16px;padding:12px;border:1px solid #2d4938;border-radius:12px;background:#111b15}.pos-loyalty-presets strong{width:100%;color:#cbe5d1}.pos-loyalty-presets button{background:#1d3325;color:#dff7e7;border-color:#47785a}
@media(max-width:950px){
  #nexusRegister #posScreen{padding:12px 12px 120px!important;}
}

/* Guest profiles never trap the lower fields: the POS screen owns vertical scrolling. */
#nexusRegister #posScreen .pos-guests { align-items:start!important; }
#nexusRegister #posScreen .pos-guests #guestList { max-height:none!important; overflow:visible!important; }
#nexusRegister #posScreen .pos-guests > section,
#nexusRegister #posScreen .pos-guests > aside { min-height:max-content!important; }
.revenue-range-control{display:grid;gap:5px;margin-top:10px;max-width:250px;font-size:.82rem;color:var(--muted,#93a194)}
.revenue-range-control select{min-height:38px}
.revenue-range-control small{font-weight:400;line-height:1.3}

/* The Guest form opens before the directory and owns its complete field set. */
#nexusRegister #posScreen .pos-guest-form{display:grid!important;scroll-margin-top:18px;margin:0 0 18px!important;padding:18px!important;border:2px solid #4ca96a!important;background:#f7fff8!important;}
#nexusRegister #posScreen .pos-guest-form[hidden]{display:none!important;}
#nexusRegister #posScreen .pos-guest-form .pos-form-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:12px!important;}
#nexusRegister #posScreen .pos-guest-form label{display:grid!important;gap:6px!important;font-weight:800;}
#nexusRegister #posScreen .pos-guest-form input,#nexusRegister #posScreen .pos-guest-form select,#nexusRegister #posScreen .pos-guest-form textarea{min-height:48px!important;font-size:16px!important;}
#nexusRegister #posScreen .pos-form-help{margin:0;color:#46604c;}


/* NEXUS POS panel scroll contract: every operational workspace scrolls in both directions. */
/* Keep the register inside the viewport while allowing each working panel to pan on touch screens. */
#nexusRegister #posScreen{
  overflow:auto!important;
  overflow-x:auto!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
  scrollbar-gutter:stable both-edges;
}
#nexusRegister #posScreen .pos-queue>section,
#nexusRegister #posScreen .pos-guests>section,
#nexusRegister #posScreen .pos-guests>aside,
#nexusRegister #posScreen .pos-order>section,
#nexusRegister #posScreen .pos-order>aside,
#nexusRegister #posScreen .pos-register-tabs>article{
  min-width:0!important;
  min-height:0!important;
  max-height:calc(100dvh - 210px)!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
  scrollbar-gutter:stable both-edges;
}
#nexusRegister #posScreen .pos-guest-form,
#nexusRegister #posScreen .pos-discount-picker,
#nexusRegister #posScreen .pos-product-grid.compact,
#nexusRegister #posScreen .pos-table-wrap,
#nexusRegister #posScreen .pos-receipt{
  overflow:auto!important;
  overflow-x:auto!important;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
}
#nexusRegister #posScreen .pos-form-grid,
#nexusRegister #posScreen .pos-order,
#nexusRegister #posScreen .pos-guests,
#nexusRegister #posScreen .pos-queue{
  min-width:max-content;
}
#nexusRegister #posScreen .pos-form-grid{min-width:min(100%,760px);}

/* Back Office uses the same rule so forms, long tables, reporting, and audit lists never trap content. */
.pos-admin,
.pos-admin-pages,
.pos-admin-pages>section.active,
.pos-admin .pos-back-grid>article,
.pos-admin .pos-register-overview-layout>div,
.pos-admin .pos-register-overview-layout>aside,
.pos-admin .pos-table-wrap,
.pos-admin .pos-receipt{
  overflow:auto!important;
  overflow-x:auto!important;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
  scrollbar-gutter:stable both-edges;
}
.pos-admin-pages>section.active{
  min-width:0;
  max-height:calc(100dvh - 250px)!important;
}
.pos-admin .pos-back-grid>article,
.pos-admin .pos-register-overview-layout>div,
.pos-admin .pos-register-overview-layout>aside{
  max-height:65dvh;
}
.pos-admin .pos-form-grid,.pos-admin .pos-register-filters{min-width:max-content;}

/* Visible, touch-friendly scrollbars on the tablets used at the counter. */
#nexusRegister #posScreen ::-webkit-scrollbar,.pos-admin ::-webkit-scrollbar{width:12px;height:12px;}
#nexusRegister #posScreen ::-webkit-scrollbar-thumb,.pos-admin ::-webkit-scrollbar-thumb{background:#5f8b6a;border:3px solid transparent;background-clip:padding-box;border-radius:999px;}
#nexusRegister #posScreen ::-webkit-scrollbar-track,.pos-admin ::-webkit-scrollbar-track{background:#e5ece6;border-radius:999px;}
@media(max-width:950px){
  #nexusRegister #posScreen .pos-queue>section,
  #nexusRegister #posScreen .pos-guests>section,
  #nexusRegister #posScreen .pos-guests>aside,
  #nexusRegister #posScreen .pos-order>section,
  #nexusRegister #posScreen .pos-order>aside,
  #nexusRegister #posScreen .pos-register-tabs>article{max-height:none!important;}
  #nexusRegister #posScreen .pos-form-grid,
  #nexusRegister #posScreen .pos-order,
  #nexusRegister #posScreen .pos-guests,
  #nexusRegister #posScreen .pos-queue{min-width:0;}
}

/* Back-office reporting: all cards are driven by the POS transaction ledger. */
.pos-report-shortcuts{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.pos-report-shortcuts a{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid #3c7653;border-radius:999px;background:#1d3325;color:#dff7e7;text-decoration:none;font-weight:800}.pos-report-section{margin-top:18px;padding:17px;border:1px solid #2d4938;border-radius:14px;background:#111b15}.pos-report-section h4{margin:0 0 5px}.pos-report-note{margin:0;color:#aebbad;font-size:.9rem}.pos-report-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:14px}.pos-hour-chart{display:flex;align-items:flex-end;gap:6px;min-height:245px;margin-top:18px;overflow-x:auto;padding:12px 4px 0}.pos-hour-bar{display:grid;grid-template-rows:170px auto auto;align-items:end;min-width:48px;gap:6px;text-align:center}.pos-hour-bar span{display:block;width:100%;min-height:3px;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#60e695,#259bc3)}.pos-hour-bar b{font-size:.68rem;color:#cbe5d1;white-space:nowrap}.pos-hour-bar small{font-size:.7rem;color:#8fa396;white-space:nowrap}.pos-report-section .pos-table-wrap{margin-bottom:0}
@media(max-width:950px){.pos-report-grid{grid-template-columns:1fr}.pos-hour-chart{min-height:210px}.pos-hour-bar{grid-template-rows:140px auto auto}}
