/* DockFlow POS v1.4 — Compact Stage Morph register workspace on the canonical Calendar transaction stack.
 * Departure / Add Booking / confirmation / Sale stay compact.
 * POS alone expands into the immersive register workspace.
 */
html body.dfd-app .dfc-pos-workspace,
html body.dfd-app .dfc-booking-confirm-workspace,
html body.dfd-app .dfc-sale-workspace{
  position:fixed;top:0;right:0;bottom:0;z-index:2147482057;
  background:#f6f8f7;color:#101418;
  box-shadow:-24px 0 70px rgba(12,20,17,.20);
  overflow:hidden;transform:translate3d(104%,0,0);
}
html body.dfd-app .dfc-pos-workspace{width:min(82vw,1360px);max-width:calc(100vw - 180px)}
html body.dfd-app .dfc-booking-confirm-workspace,html body.dfd-app .dfc-sale-workspace{width:clamp(600px,34vw,650px);max-width:calc(100vw - 24px)}
@media(min-width:901px){
  html body.dfd-app.dfd-view-calendar .dfc-cal__drawer[data-dfc-drawer-variant="departure-detail-v2"],
  html body.dfd-app.dfd-view-calendar .dfc-cal__guestdrawer[data-dfc-drawer-variant="add-booking-v2"]{width:clamp(600px,34vw,650px) !important;max-width:calc(100vw - 24px) !important}
}
html body.dfd-app .dfc-pos-workspace.is-open,
html body.dfd-app .dfc-pos-workspace.is-df-drawer-open,
html body.dfd-app .dfc-booking-confirm-workspace.is-open,
html body.dfd-app .dfc-booking-confirm-workspace.is-df-drawer-open,
html body.dfd-app .dfc-sale-workspace.is-open,
html body.dfd-app .dfc-sale-workspace.is-df-drawer-open{
  transform:translate3d(0,0,0);
  pointer-events:auto;
}
/* Match the Guest workspace invariant: parked means off-stage, never stacked. */
html body.dfd-app .dfc-cal__drawerportal [data-df-drawer-stack-key].is-df-drawer-parked,
html body.dfd-app .dfc-cal__drawerportal [data-df-drawer-stack-key][data-df-drawer-state="parked"]{
  transform:translate3d(104%,0,0) !important;
  opacity:1 !important;visibility:visible !important;pointer-events:none !important;
}
html body.dfd-app .dfc-cal__drawerportal [data-df-drawer-stack-key][data-df-drawer-state="opening"]{pointer-events:none !important;}

/* v0.6.1191 — Off-stage chrome invariant.
 * Spatially parked surfaces stay mounted so Back can criss-cross instantly, but once
 * the outgoing motion has finished their left-cast drawer shadow must not remain
 * visible from beyond the right viewport edge. Incoming surfaces regain their normal
 * chrome as soon as the parked class is removed for the return animation.
 */
html body.dfd-app .dfc-cal__drawerportal [data-df-drawer-stack-key].is-df-drawer-parked:not([data-df-drawer-motion-role="outgoing"]),
html body.dfd-app .dfc-cal__drawerportal [data-df-drawer-stack-key][data-df-drawer-state="parked"]:not([data-df-drawer-motion-role="outgoing"]){
  box-shadow:none !important;
  border-left-color:transparent !important;
}

/* Defensive closed-state guard. Some legacy Calendar chassis rules explicitly set
 * display:grid; if a browser/CSS cascade keeps a hidden shell paintable, it still
 * cannot cast visual chrome into an otherwise empty stage.
 */
html body.dfd-app.dfd-view-calendar .dfc-cal__drawerportal .dfc-cal__drawer[hidden]:not(.is-open):not(.is-df-drawer-open),
html body.dfd-app.dfd-view-calendar .dfc-cal__drawerportal .dfc-cal__guestdrawer[hidden]:not(.is-open):not(.is-df-drawer-open),
html body.dfd-app.dfd-view-calendar .dfc-cal__drawerportal .dfc-pos-workspace[hidden]:not(.is-open):not(.is-df-drawer-open),
html body.dfd-app.dfd-view-calendar .dfc-cal__drawerportal .dfc-booking-confirm-workspace[hidden]:not(.is-open):not(.is-df-drawer-open),
html body.dfd-app.dfd-view-calendar .dfc-cal__drawerportal .dfc-sale-workspace[hidden]:not(.is-open):not(.is-df-drawer-open){
  box-shadow:none !important;
  border-left-color:transparent !important;
}

.dfc-pos-workspace__panel,.dfc-sale-workspace__panel{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:linear-gradient(180deg,#fbfcfb 0%,#f4f7f5 100%)}
/* The POS footer is transaction-critical chrome. Keep it physically anchored inside the
 * workspace instead of allowing a tall checkout body to push it below the viewport. */
.dfc-pos-workspace__panel{position:relative;box-sizing:border-box;padding-bottom:64px}
.dfc-pos-workspace__foot{position:absolute;left:0;right:0;bottom:0;z-index:4}
.dfc-booking-confirm-workspace__panel{height:100%;display:grid;grid-template-rows:minmax(0,1fr);background:linear-gradient(180deg,#fff 0%,#f4f8f5 100%)}
.dfc-pos-workspace__head,.dfc-sale-workspace__head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(18,35,27,.08);background:rgba(255,255,255,.94);backdrop-filter:blur(18px)}
.dfc-pos-workspace__head{min-height:68px;box-sizing:border-box;padding:9px 20px}
.dfc-sale-workspace__head{min-height:68px;padding:13px 18px 13px 22px}
.dfc-pos-workspace__brand{display:flex;align-items:center;gap:12px;min-width:0}
.dfc-pos-workspace__mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#101713;color:#7dff9b;font:800 11px/1 Inter,sans-serif;letter-spacing:.08em;box-shadow:0 7px 20px rgba(10,30,18,.11)}
.dfc-pos-workspace__brand h3{margin:0;font:760 21px/1.1 Inter,sans-serif;color:#0b1210;letter-spacing:-.025em}
.dfc-sale-workspace__head h3{margin:0;font:760 21px/1.15 Inter,sans-serif;color:#0b1210;letter-spacing:-.02em}
.dfc-pos-workspace__close{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(16,31,24,.10);border-radius:11px;background:#fff;color:#18211d;cursor:pointer;font-size:15px;flex:0 0 38px}
.dfc-sale-workspace__close{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(16,31,24,.10);border-radius:11px;background:#fff;color:#18211d;cursor:pointer;flex:0 0 40px}.dfc-sale-workspace__close span{width:19px;height:19px;display:grid;place-items:center}.dfc-sale-workspace__close svg{width:19px;height:19px;display:block;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dfc-pos-workspace__close:hover,.dfc-sale-workspace__close:hover{background:#f0f4f2}
.dfc-pos-workspace__close:focus-visible,.dfc-sale-workspace__close:focus-visible,.dfc-pos-workspace__mode:focus-visible,.dfc-pos-workspace__method:focus-visible{outline:3px solid rgba(30,215,96,.22);outline-offset:2px}

/* Register workspace — Stage Morph progressive disclosure.
 * The cart is the stable transaction truth. Only the left decision stage changes.
 */
.dfc-pos-workspace__body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px 18px;background:radial-gradient(circle at 16% 8%,rgba(93,225,125,.08),transparent 30%),linear-gradient(180deg,#f7faf8 0%,#f2f6f3 100%)}
.dfc-pos-workspace__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(350px,.72fr);gap:16px;max-width:1310px;margin:0 auto;min-height:100%}
.dfc-pos-workspace__checkout,.dfc-pos-workspace__cart{background:rgba(255,255,255,.96);border:1px solid rgba(18,35,27,.075);border-radius:20px;box-shadow:0 18px 48px rgba(18,35,27,.055)}
.dfc-pos-workspace__checkout{padding:20px 22px;display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0;overflow:hidden}
.dfc-pos-workspace__cart{padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;position:sticky;top:0;align-self:start;min-height:min(620px,calc(100vh - 188px))}
.dfc-pos-workspace__eyebrow,.dfc-pos-workspace__sectionhead span,.dfc-pos-workspace__contact span,.dfc-pos-workspace__paymenthero span,.dfc-pos-workspace__carthead span{font:800 10px/1.2 Inter,sans-serif;letter-spacing:.14em;color:#718078}
.dfc-pos-workspace__paymenthero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:13px;border-bottom:1px solid rgba(18,35,27,.075)}
.dfc-pos-workspace__paymenthero>div:first-child{min-width:0}
.dfc-pos-workspace__paymenthero h2{margin:4px 0 0;color:#0d1511;font:780 27px/1.08 Inter,sans-serif;letter-spacing:-.035em}
.dfc-pos-workspace__paymenthero p{margin:5px 0 0;max-width:560px;color:#6b7771;font:500 11.5px/1.42 Inter,sans-serif}
.dfc-pos-workspace__section{padding:0}
.dfc-pos-workspace__sectionhead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.dfc-pos-workspace__sectionhead h4{margin:4px 0 0;color:#17201c;font:720 16px/1.25 Inter,sans-serif;letter-spacing:-.015em}
.dfc-pos-workspace__sectionhead p{margin:3px 0 0;color:#7a857f;font:500 10.5px/1.35 Inter,sans-serif}
.dfc-pos-workspace__decisionstage{min-height:0;display:flex;flex-direction:column;gap:13px;transform-origin:50% 10%}

/* Collection plan is a focused first decision, not a small toolbar above payment. */
.dfc-pos-workspace__modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:12px}
.dfc-pos-workspace__mode{position:relative;min-height:126px;padding:16px;border:1px solid rgba(18,35,27,.10);border-radius:19px;background:linear-gradient(155deg,#fff 0%,#fbfcfb 100%);color:#243029;cursor:pointer;text-align:left;display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:14px;row-gap:9px;align-items:start;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}
.dfc-pos-workspace__mode:hover{transform:translateY(-2px);border-color:rgba(29,141,66,.30);box-shadow:0 14px 34px rgba(18,35,27,.07);background:#fff}
.dfc-pos-workspace__mode.is-active{border-color:rgba(26,129,59,.55);background:linear-gradient(145deg,#f3fff6 0%,#fff 72%);box-shadow:0 0 0 2px rgba(42,190,82,.09),0 14px 34px rgba(18,35,27,.055)}
.dfc-pos-workspace__modeicon{grid-column:1;grid-row:1/3;width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#f0f4f2;color:#1c3326;transition:background .18s ease,color .18s ease,transform .18s ease}
.dfc-pos-workspace__modeicon svg{width:21px;height:21px}
.dfc-pos-workspace__mode.is-active .dfc-pos-workspace__modeicon{background:#163c24;color:#84f39c;transform:scale(1.02)}
.dfc-pos-workspace__modecopy{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:7px;align-self:center;min-width:0}
.dfc-pos-workspace__modecopy strong{color:#17201c;font:740 15px/1.25 Inter,sans-serif;letter-spacing:-.01em}
.dfc-pos-workspace__modecopy small{max-width:220px;color:#79847e;font:500 11px/1.42 Inter,sans-serif}
.dfc-pos-workspace__mode>b{grid-column:3;grid-row:1;color:#152019;font:750 13px/1.2 Inter,sans-serif;white-space:nowrap}
.dfc-pos-workspace__modearrow{grid-column:3;grid-row:2;align-self:end;justify-self:end;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#f1f4f2;color:#75817a;transition:background .18s ease,color .18s ease,transform .18s ease}
.dfc-pos-workspace__modearrow svg{width:14px;height:14px}
.dfc-pos-workspace__mode:hover .dfc-pos-workspace__modearrow,.dfc-pos-workspace__mode.is-active .dfc-pos-workspace__modearrow{background:#e5f8ea;color:#18783a;transform:translateX(2px)}

/* The selected plan becomes compact context for the next decision. */
.dfc-pos-workspace__planbar{width:100%;min-height:66px;padding:9px 12px;border:1px solid rgba(28,122,57,.18);border-radius:17px;background:linear-gradient(135deg,#f1fbf4 0%,#fbfdfc 70%);display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;gap:12px;align-items:center;text-align:left;cursor:pointer;color:#18231d;box-shadow:0 10px 30px rgba(18,35,27,.035);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.dfc-pos-workspace__planbar:hover{border-color:rgba(28,122,57,.32);box-shadow:0 12px 30px rgba(18,35,27,.06);transform:translateY(-1px)}
.dfc-pos-workspace__planbar:focus-visible{outline:3px solid rgba(30,215,96,.22);outline-offset:2px}
.dfc-pos-workspace__planicon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#173d25;color:#82f29a}
.dfc-pos-workspace__planicon svg{width:19px;height:19px}
.dfc-pos-workspace__plancopy{display:flex;flex-direction:column;gap:4px;min-width:0}
.dfc-pos-workspace__plancopy small{color:#688176;font:800 9px/1.2 Inter,sans-serif;letter-spacing:.14em}
.dfc-pos-workspace__plancopy strong{color:#17201c;font:730 14px/1.25 Inter,sans-serif}
.dfc-pos-workspace__planbar>b{font:770 15px/1.2 Inter,sans-serif;white-space:nowrap;color:#142018}
.dfc-pos-workspace__planchange{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid rgba(18,35,27,.08);color:#65736c;font:650 10px/1 Inter,sans-serif;white-space:nowrap}

/* Payment method is the second focused decision. */
.dfc-pos-workspace__methodsection{display:flex;flex-direction:column;min-height:0}
.dfc-pos-workspace__methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.dfc-pos-workspace__method{position:relative;min-height:100px;border:1px solid rgba(18,35,27,.10);border-radius:18px;background:linear-gradient(180deg,#fff 0%,#fbfcfb 100%);display:grid;grid-template-columns:44px minmax(0,1fr) 24px;grid-template-rows:auto 1fr;column-gap:12px;row-gap:6px;align-items:start;padding:14px 15px;cursor:pointer;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}
.dfc-pos-workspace__method:hover{border-color:rgba(29,141,66,.32);box-shadow:0 12px 28px rgba(18,35,27,.07);transform:translateY(-2px);background:#fff}
.dfc-pos-workspace__method.is-active{border-color:#268848;background:linear-gradient(145deg,#f3fff6 0%,#fff 72%);box-shadow:0 0 0 2px rgba(45,196,91,.12),0 14px 30px rgba(18,35,27,.07)}
.dfc-pos-workspace__methodicon{grid-column:1;grid-row:1/3;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#f0f4f2;color:#1c3326;transition:background .16s ease,color .16s ease,transform .16s ease}
.dfc-pos-workspace__method.is-active .dfc-pos-workspace__methodicon{background:#173e25;color:#83f59d;transform:scale(1.02)}
.dfc-pos-workspace__methodicon svg{width:22px;height:22px}
.dfc-pos-workspace__methodcopy{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:4px;align-self:center;min-width:0}
.dfc-pos-workspace__method strong{font:720 14px/1.25 Inter,sans-serif;color:#17201c}
.dfc-pos-workspace__method small{color:#7a857f;font:500 10.5px/1.35 Inter,sans-serif}
.dfc-pos-workspace__methodcheck{grid-column:3;grid-row:1;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dff9e6;color:#157b35;opacity:0;transform:scale(.72);transition:opacity .16s ease,transform .16s ease}
.dfc-pos-workspace__methodcheck svg{width:14px;height:14px}
.dfc-pos-workspace__method.is-active .dfc-pos-workspace__methodcheck{opacity:1;transform:scale(1)}
.dfc-pos-workspace__deposit{display:grid;grid-template-columns:minmax(0,1fr) minmax(155px,210px);grid-template-rows:auto auto;column-gap:16px;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid rgba(18,35,27,.075);border-radius:15px;background:#f8faf9}
.dfc-pos-workspace__deposit>span{grid-column:1;grid-row:1;font:680 12px/1.2 Inter,sans-serif;color:#34443b}
.dfc-pos-workspace__deposit>div{grid-column:2;grid-row:1/3;height:40px;border:1px solid rgba(18,35,27,.12);border-radius:12px;display:flex;align-items:center;padding:0 12px;background:#fff}
.dfc-pos-workspace__deposit input{width:100%;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;font:700 15px Inter,sans-serif}
.dfc-pos-workspace__deposit small{grid-column:1;grid-row:2;display:block;margin-top:4px;color:#7a857f;font:500 10px/1.35 Inter,sans-serif}
.dfc-pos-workspace__modenote{display:flex;gap:14px;align-items:center;padding:21px;border:1px solid rgba(18,35,27,.08);border-radius:18px;background:linear-gradient(145deg,#f7faf8,#fff);color:#506058;min-height:150px}
.dfc-pos-workspace__modenoteicon{width:52px;height:52px;flex:0 0 52px;border-radius:15px;display:grid;place-items:center;background:#edf6f0;color:#2d7f48}
.dfc-pos-workspace__modenoteicon svg{width:25px;height:25px}
.dfc-pos-workspace__modenote>div>span{display:block;color:#6d8377;font:800 9px/1.2 Inter,sans-serif;letter-spacing:.14em}
.dfc-pos-workspace__modenote strong{display:block;margin-top:6px;color:#203029;font:720 15px/1.25 Inter,sans-serif}
.dfc-pos-workspace__modenote p{margin:5px 0 0;max-width:480px;color:#6f7d75;font:500 11px/1.45 Inter,sans-serif}

/* Stable right transaction rail. */
.dfc-pos-workspace__contact{display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:center;padding:12px;border-radius:15px;background:#f5f8f6;border:1px solid rgba(18,35,27,.055)}
.dfc-pos-workspace__avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#101914;color:#80ff9e;font:760 12px/1 Inter,sans-serif}.dfc-pos-workspace__contact div:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.dfc-pos-workspace__contact strong{font:700 13px/1.25 Inter,sans-serif}.dfc-pos-workspace__contact small{font:500 10px/1.35 Inter,sans-serif;color:#748079;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dfc-pos-workspace__carthead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:3px 2px 0}.dfc-pos-workspace__carthead h4{margin:4px 0 0;color:#17201c;font:720 16px/1.25 Inter,sans-serif}.dfc-pos-workspace__cartcount{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#eef3f0;color:#536159!important;font:680 10px/1 Inter,sans-serif!important;letter-spacing:0!important}
.dfc-pos-workspace__trip{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:15px;background:linear-gradient(135deg,#effaf2,#fafcfb);border:1px solid rgba(53,141,78,.10)}
.dfc-pos-workspace__trip div{display:flex;flex-direction:column;gap:4px;min-width:0}.dfc-pos-workspace__trip strong{font:710 14px/1.3 Inter,sans-serif}.dfc-pos-workspace__trip span{color:#66716c;font:530 11px/1.4 Inter,sans-serif}.dfc-pos-workspace__trip>span{align-self:flex-start;padding:6px 9px;border-radius:999px;background:#fff;border:1px solid rgba(18,35,27,.08);color:#203229;font-weight:700;white-space:nowrap}
.dfc-pos-workspace__cartlist{display:flex;flex-direction:column;border-top:1px solid rgba(18,35,27,.07)}
.dfc-pos-workspace__cartrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;border-bottom:1px solid rgba(18,35,27,.07)}
.dfc-pos-workspace__cartrow div{display:flex;flex-direction:column;gap:3px;min-width:0}.dfc-pos-workspace__cartrow strong{font:670 13px/1.3 Inter,sans-serif}.dfc-pos-workspace__cartrow span{color:#758079;font:500 11px/1.3 Inter,sans-serif}.dfc-pos-workspace__cartrow b{font:730 13px/1.2 Inter,sans-serif;white-space:nowrap}
.dfc-pos-workspace__totals{margin-top:auto;padding-top:11px;display:flex;flex-direction:column;gap:9px}.dfc-pos-workspace__totals>div{display:flex;justify-content:space-between;gap:18px;color:#5d6a64;font:550 12px/1.3 Inter,sans-serif}.dfc-pos-workspace__totals>div strong{color:#141b18}.dfc-pos-workspace__totals .is-total{margin-top:3px;padding-top:13px;border-top:1px solid rgba(18,35,27,.10);font-size:15px;color:#111}.dfc-pos-workspace__totals .is-total strong{font-size:21px}.dfc-pos-workspace__txmeta{display:flex;gap:7px;align-items:center;padding-top:2px;color:#8a958f;font:500 9px/1.2 Inter,sans-serif}.dfc-pos-workspace__txmeta code{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#66736c}
.dfc-pos-workspace__empty{padding:18px 0;color:#7a857f;font:500 12px/1.45 Inter,sans-serif}
.dfc-pos-workspace__error{margin:0;padding:10px 24px;background:#fff2f2;color:#a32626;border-top:1px solid rgba(180,40,40,.12);font:600 12px/1.35 Inter,sans-serif}
.dfc-pos-workspace__foot,.dfc-sale-workspace__foot{display:flex;align-items:center;gap:11px;border-top:1px solid rgba(18,35,27,.08);background:rgba(255,255,255,.97);backdrop-filter:blur(16px)}.dfc-pos-workspace__foot{min-height:64px;box-sizing:border-box;padding:8px 16px}.dfc-sale-workspace__foot{min-height:72px;padding:12px 18px}.dfc-pos-workspace__footmeta{margin-left:auto;display:flex;align-items:baseline;gap:7px}.dfc-pos-workspace__footmeta[hidden]{display:none!important}.dfc-pos-workspace__footmeta span{font:600 10px/1.2 Inter,sans-serif;color:#758079}.dfc-pos-workspace__footmeta strong{font:760 18px/1.2 Inter,sans-serif}.dfc-pos-workspace__foot .df-ui-btn{min-height:44px;border-radius:12px;padding:0 19px}.dfc-sale-workspace__foot .df-ui-btn{min-height:46px;border-radius:12px;padding:0 20px}.dfc-pos-workspace__foot [data-dfc-pos-workspace-pay]{min-width:190px}.dfc-pos-workspace__foot [data-dfc-pos-workspace-pay][hidden]{display:none!important}

/* Native shared-element transition where supported. The Calendar, cart and POS shell never move. */
html.dfc-pos-view-transition [data-dfc-pos-morph-source],html.dfc-pos-view-transition [data-dfc-pos-morph-target]{view-transition-name:dfc-pos-plan;contain:paint}
html.dfc-pos-view-transition .dfc-pos-workspace__decisionstage{view-transition-name:dfc-pos-stage;contain:layout paint}
html.dfc-pos-view-transition::view-transition-old(root),html.dfc-pos-view-transition::view-transition-new(root){animation:none!important;mix-blend-mode:normal!important}
html.dfc-pos-view-transition::view-transition-group(dfc-pos-plan){animation-duration:.34s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
html.dfc-pos-view-transition::view-transition-old(dfc-pos-plan),html.dfc-pos-view-transition::view-transition-new(dfc-pos-plan){mix-blend-mode:normal;animation-duration:.34s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
html.dfc-pos-view-transition::view-transition-group(dfc-pos-stage){animation-duration:.28s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
html.dfc-pos-vt-forward::view-transition-old(dfc-pos-stage){animation:dfc-pos-vt-old-forward .22s ease both}
html.dfc-pos-vt-forward::view-transition-new(dfc-pos-stage){animation:dfc-pos-vt-new-forward .30s cubic-bezier(.22,1,.36,1) both}
html.dfc-pos-vt-backward::view-transition-old(dfc-pos-stage){animation:dfc-pos-vt-old-back .20s ease both}
html.dfc-pos-vt-backward::view-transition-new(dfc-pos-stage){animation:dfc-pos-vt-new-back .30s cubic-bezier(.22,1,.36,1) both}
@keyframes dfc-pos-vt-old-forward{to{opacity:0;transform:translate3d(-10px,0,0)}}
@keyframes dfc-pos-vt-new-forward{from{opacity:0;transform:translate3d(14px,0,0)}to{opacity:1;transform:none}}
@keyframes dfc-pos-vt-old-back{to{opacity:0;transform:translate3d(10px,0,0)}}
@keyframes dfc-pos-vt-new-back{from{opacity:0;transform:translate3d(-14px,0,0)}to{opacity:1;transform:none}}

/* CSS fallback keeps the same state machine when View Transitions are unavailable. */
.dfc-pos-workspace.is-stage-animating[data-dfc-pos-stage-direction="forward"] .dfc-pos-workspace__decisionstage{animation:dfc-pos-stage-forward .30s cubic-bezier(.22,1,.36,1) both}
.dfc-pos-workspace.is-stage-animating[data-dfc-pos-stage-direction="backward"] .dfc-pos-workspace__decisionstage{animation:dfc-pos-stage-back .30s cubic-bezier(.22,1,.36,1) both}
@keyframes dfc-pos-stage-forward{from{opacity:0;transform:translate3d(18px,0,0) scale(.992)}to{opacity:1;transform:none}}
@keyframes dfc-pos-stage-back{from{opacity:0;transform:translate3d(-18px,0,0) scale(.992)}to{opacity:1;transform:none}}

/* On ordinary desktop heights the POS is deliberately scroll-free. Short windows retain safe overflow. */
@media(min-width:901px) and (min-height:720px){
  .dfc-pos-workspace__body{overflow:hidden}
  .dfc-pos-workspace__grid{height:100%;min-height:0}
  .dfc-pos-workspace__checkout,.dfc-pos-workspace__cart{height:100%;box-sizing:border-box}
  .dfc-pos-workspace__cart{min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}
}
/* Browser chrome can leave only ~800–900px of app height on a 1080p display.
 * Compact the rhythm, never the decision hierarchy or minimum touch intent. */
@media(min-width:901px) and (min-height:720px) and (max-height:940px){
  .dfc-pos-workspace__checkout{padding:18px 20px;gap:14px}
  .dfc-pos-workspace__paymenthero{padding-bottom:11px}
  .dfc-pos-workspace__paymenthero h2{font-size:26px}
  .dfc-pos-workspace__decisionstage{gap:11px}
  .dfc-pos-workspace__planbar{min-height:62px}
  .dfc-pos-workspace__methods{gap:9px;margin-top:9px}
  .dfc-pos-workspace__method{min-height:94px;padding:12px 14px}
  .dfc-pos-workspace__contact{padding:10px}
  .dfc-pos-workspace__trip{padding:11px 12px}
  .dfc-pos-workspace__cartrow{padding:10px 2px}
  .dfc-pos-workspace__totals{padding-top:8px;gap:7px}
  .dfc-pos-workspace__totals .is-total{padding-top:10px}
}

/* Protected post-payment confirmation. No controls: commitment already happened. */
.dfc-booking-confirm-workspace__body{min-height:0;display:grid;place-items:center;padding:36px 30px;overflow:hidden}
.dfc-booking-confirm-workspace__success{width:min(100%,430px);display:flex;flex-direction:column;align-items:center;text-align:center}
.dfc-booking-confirm-workspace__check{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:#e7ffed;color:#16833a;box-shadow:0 0 0 12px rgba(30,215,96,.055);animation:dfc-confirm-pop .46s cubic-bezier(.2,.9,.2,1.18) both}
.dfc-booking-confirm-workspace__check svg{width:36px;height:36px;stroke-dasharray:28;stroke-dashoffset:28;animation:dfc-confirm-draw .34s .22s ease forwards}
.dfc-booking-confirm-workspace__eyebrow{margin-top:27px;color:#16833a;font:800 10px/1.2 Inter,sans-serif;letter-spacing:.16em}
.dfc-booking-confirm-workspace__success h3{margin:7px 0 0;color:#101814;font:780 30px/1.08 Inter,sans-serif;letter-spacing:-.035em}
.dfc-booking-confirm-workspace__success p{max-width:360px;margin:10px 0 0;color:#65716b;font:500 13px/1.5 Inter,sans-serif}
.dfc-booking-confirm-workspace__handoff{margin-top:23px;color:#8a958f;font:600 10px/1.2 Inter,sans-serif}
@keyframes dfc-confirm-pop{0%{opacity:0;transform:scale(.72)}70%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes dfc-confirm-draw{to{stroke-dashoffset:0}}

/* Compact permanent Sale destination. */
.dfc-sale-workspace__body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px;background:#f7f9f8}
.dfc-sale-workspace__receipt{background:#fff;border:1px solid #e2e9e5;border-radius:18px;box-shadow:0 1px 2px rgba(18,35,27,.035);overflow:hidden}
.dfc-sale-workspace__receiptTop{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 18px 18px;border-bottom:1px solid #e7ece9}
.dfc-sale-workspace__identity>span,.dfc-sale-workspace__payment span{display:block;color:#68776f;font:650 10.5px/1.25 Inter,sans-serif;letter-spacing:0;text-transform:none}
.dfc-sale-workspace__receiptRef{min-width:0;display:flex;flex-direction:column;gap:4px}.dfc-sale-workspace__receiptTop h4{margin:0;color:#101713;font:760 20px/1.2 Inter,sans-serif;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.dfc-sale-workspace__receiptRef small{color:#7b8781;font:500 10.75px/1.3 Inter,sans-serif}
.dfc-sale-workspace__paid{padding:6px 9px;border-radius:999px;background:#eafbf0;color:#157a36;font:700 10px/1 Inter,sans-serif;white-space:nowrap}
.dfc-sale-workspace__identity{display:flex;flex-direction:column;gap:4px;padding:15px 18px 16px;border-bottom:1px solid #e9eeeb}
.dfc-sale-workspace__identity strong{font:690 13.5px/1.3 Inter,sans-serif;color:#18211d;letter-spacing:-.01em}.dfc-sale-workspace__identity small{font:500 11.5px/1.35 Inter,sans-serif;color:#75817b}
.dfc-sale-workspace__bookingLink{appearance:none;-webkit-appearance:none;width:100%;margin:0;border:0;border-bottom:1px solid #e9eeeb;background:#fff;padding:0;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:12px;cursor:pointer;color:#19231e;transition:background .16s ease,color .16s ease}
.dfc-sale-workspace__bookingLink:hover{background:#f8fbf9}.dfc-sale-workspace__bookingLink:focus-visible{outline:3px solid rgba(30,215,96,.20);outline-offset:-3px}
.dfc-sale-workspace__bookingCopy{display:flex;flex-direction:column;gap:4px;padding:15px 0 15px 18px;min-width:0}.dfc-sale-workspace__bookingCopy strong{font:690 13.5px/1.3 Inter,sans-serif;color:#18211d;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dfc-sale-workspace__bookingCopy small{font:500 11.5px/1.35 Inter,sans-serif;color:#75817b;font-variant-numeric:tabular-nums}
.dfc-sale-workspace__bookingArrow{width:28px;height:28px;margin-right:12px;display:grid;place-items:center;color:#7a8780;background:transparent;transition:color .16s ease,transform .16s ease}.dfc-sale-workspace__bookingLink:hover .dfc-sale-workspace__bookingArrow{color:#1a8f45;transform:translateX(1px)}.dfc-sale-workspace__bookingArrow svg{width:18px;height:18px;display:block;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dfc-sale-workspace__rows{padding:5px 18px 9px}.dfc-sale-workspace__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;color:#56645c;font:540 12.25px/1.35 Inter,sans-serif}.dfc-sale-workspace__row>span{display:flex;align-items:baseline;gap:6px;min-width:0}.dfc-sale-workspace__row>span strong{color:#26312b;font:650 12.5px/1.35 Inter,sans-serif}.dfc-sale-workspace__row>span small{color:#87918c;font:500 10.5px/1.2 Inter,sans-serif}.dfc-sale-workspace__row>b{color:#17201c;font:690 12.5px/1.3 Inter,sans-serif;white-space:nowrap;font-variant-numeric:tabular-nums}.dfc-sale-workspace__row.is-subtotal{margin-top:6px;padding-top:13px;border-top:1px solid #e6ece8}.dfc-sale-workspace__row.is-tax{padding:7px 0;color:#65736b}.dfc-sale-workspace__row.is-tax>b{font-weight:620;color:#44524a}.dfc-sale-workspace__taxnote{margin:-2px 0 7px;color:#89948e;font:500 10.5px/1.35 Inter,sans-serif}.dfc-sale-workspace__row.is-total{margin-top:4px;padding-top:14px;border-top:1px solid #dde5e1;color:#101713;font-size:14px;font-weight:690}.dfc-sale-workspace__row.is-total>b{font-size:20px;font-weight:760;letter-spacing:-.025em}.dfc-sale-workspace__row.is-balance{padding:8px 0 10px;color:#7a4c0a}.dfc-sale-workspace__row.is-balance>b{color:#7a4c0a;font-weight:720}
.dfc-sale-workspace__payment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px 16px;background:#f7faf8;border-top:1px solid #e5ebe7}.dfc-sale-workspace__payment>div{display:flex;flex-direction:column;gap:4px}.dfc-sale-workspace__payment strong{font:660 12.5px/1.25 Inter,sans-serif;color:#25322b}.dfc-sale-workspace__payment>b{font:740 14.5px/1.2 Inter,sans-serif;color:#17201c;font-variant-numeric:tabular-nums}
.dfc-sale-workspace__foot{justify-content:space-between}
.dfc-sale-workspace__actions{flex:0 0 auto}.dfc-sale-workspace__more{appearance:none;-webkit-appearance:none;width:46px;height:46px;display:grid;place-items:center;padding:0;border:1px solid rgba(16,31,24,.12);border-radius:12px;background:#fff;color:#1b2922;cursor:pointer;box-shadow:none}.dfc-sale-workspace__more:hover{background:#f3f7f5}.dfc-sale-workspace__more:focus-visible{outline:3px solid rgba(30,215,96,.22);outline-offset:2px}.dfc-sale-workspace__more>span{width:20px;height:20px;display:grid;place-items:center}.dfc-sale-workspace__more svg{width:20px;height:20px;display:block;fill:currentColor;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dfc-sale-workspace__menu{left:0!important;right:auto!important}.dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item:disabled,.dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item[aria-disabled="true"]{opacity:.46!important;cursor:not-allowed!important;background:transparent!important}.dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item.is-danger{color:#b42318!important}.dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item.is-danger .df-ui-drawer-menu-v2__icon{background:#fff1ef!important;color:#b42318!important}

@media(max-width:1180px){
  html body.dfd-app .dfc-pos-workspace{width:min(94vw,1100px);max-width:calc(100vw - 48px)}
  .dfc-pos-workspace__grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.72fr)}
  .dfc-pos-workspace__checkout{padding:20px}
}
@media(max-width:900px){
  html body.dfd-app .dfc-pos-workspace{width:min(96vw,860px);max-width:100vw}
  .dfc-pos-workspace__grid{grid-template-columns:1fr}
  .dfc-pos-workspace__cart{position:relative;top:auto;min-height:0}
  .dfc-pos-workspace__paymenthero{align-items:flex-start}
}
@media(max-width:760px){
  html body.dfd-app .dfc-pos-workspace,html body.dfd-app .dfc-booking-confirm-workspace,html body.dfd-app .dfc-sale-workspace{width:100vw!important;max-width:100vw!important}
  .dfc-pos-workspace__head,.dfc-sale-workspace__head{padding:13px 14px;min-height:68px}.dfc-pos-workspace__mark{width:38px;height:38px;border-radius:11px}.dfc-pos-workspace__brand h3,.dfc-sale-workspace__head h3{font-size:19px}
  .dfc-pos-workspace__body,.dfc-sale-workspace__body{padding:11px}.dfc-pos-workspace__grid{gap:10px}.dfc-pos-workspace__cart,.dfc-pos-workspace__checkout,.dfc-sale-workspace__receipt{border-radius:15px}.dfc-pos-workspace__checkout{padding:15px;gap:19px}.dfc-pos-workspace__cart{padding:14px}
  .dfc-pos-workspace__paymenthero{display:block;padding-bottom:16px}.dfc-pos-workspace__paymenthero h2{font-size:24px}
  .dfc-pos-workspace__modes,.dfc-pos-workspace__methods{grid-template-columns:1fr}.dfc-pos-workspace__mode{min-height:112px;padding:15px}.dfc-pos-workspace__method{min-height:104px;grid-template-columns:42px minmax(0,1fr) 22px;padding:14px;column-gap:11px}.dfc-pos-workspace__methodicon,.dfc-pos-workspace__modeicon{width:42px;height:42px;border-radius:12px}.dfc-pos-workspace__method small{font-size:10px}
  .dfc-pos-workspace__planbar{grid-template-columns:42px minmax(0,1fr) auto}.dfc-pos-workspace__planchange{display:none}.dfc-pos-workspace__deposit{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:6px}.dfc-pos-workspace__deposit>span,.dfc-pos-workspace__deposit>div,.dfc-pos-workspace__deposit small{grid-column:1;grid-row:auto}.dfc-pos-workspace__deposit>div{width:100%;box-sizing:border-box}
  .dfc-pos-workspace__trip{flex-direction:column}.dfc-pos-workspace__trip>span{align-self:flex-start}
  .dfc-pos-workspace__panel{padding-bottom:66px}
  .dfc-pos-workspace__foot,.dfc-sale-workspace__foot{padding:10px 11px;min-height:66px}.dfc-pos-workspace__footmeta{display:none}.dfc-pos-workspace__foot .df-ui-btn,.dfc-sale-workspace__foot .df-ui-btn{flex:1;min-width:0!important}.dfc-pos-workspace__brand p{max-width:210px}
  .dfc-booking-confirm-workspace__body{padding:28px 20px}.dfc-booking-confirm-workspace__check{width:70px;height:70px}.dfc-booking-confirm-workspace__success h3{font-size:27px}
}
@media(prefers-reduced-motion:reduce){
  .dfc-booking-confirm-workspace__check,.dfc-booking-confirm-workspace__check svg,.dfc-pos-workspace__method,.dfc-pos-workspace__mode,.dfc-pos-workspace__planbar,.dfc-pos-workspace__decisionstage{animation:none!important;transition-duration:1ms!important}
  .dfc-booking-confirm-workspace__check svg{stroke-dashoffset:0}
}

/* v0.6.1190 — Calendar transaction terminal-close hygiene.
 * The root Departure drawer keeps its scoped detail styles until it is fully off-stage,
 * while the heavy edge shadow is retired immediately so no orphaned right-side sliver
 * survives the 220ms close animation.
 */
html body.dfd-app.dfd-view-calendar .dfc-cal__drawer.is-root-closing{
  box-shadow:none !important;
  border-left-color:transparent !important;
  pointer-events:none !important;
}


/* 0.6.1198 — Sale quick-actions + receipt final polish.
   This selector intentionally outranks the shared Booking-menu scroll contract: the
   six fixed Sale actions fit naturally and must never become a nested scroll region. */
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu{
  width:min(250px,calc(100vw - 28px))!important;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  overscroll-behavior:auto!important;
  gap:2px!important;
  padding:6px!important;
}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item{
  min-height:42px!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  gap:8px!important;
  padding:5px 8px!important;
}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item>span:last-child{display:block!important;}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item strong{font-size:12.5px!important;line-height:1.2!important;}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__icon{width:28px!important;height:28px!important;border-radius:9px!important;}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__icon svg{width:15px!important;height:15px!important;}
html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__divider{margin:3px 5px!important;}
.dfc-sale-workspace__bookingLink>.dfc-sale-workspace__bookingCopy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:4px!important;
  min-width:0!important;
}
@media(max-height:560px){
  html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu{padding:5px!important;gap:1px!important;}
  html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__item{min-height:38px!important;padding:4px 7px!important;}
  html body.dfd-app .dfc-sale-workspace .dfc-sale-workspace__menu .df-ui-drawer-menu-v2__icon{width:26px!important;height:26px!important;}
}

