/* Shared single-surface control standard, all portals. */
/* Camera overlays must not leak into the reference's decorative scan illustration. */
.scan-frame{inset:auto;box-shadow:none;border:0}
.admission-camera .scan-frame{position:absolute;inset:15% 20%;width:auto;height:auto;border:3px solid var(--accent);border-radius:16px;box-shadow:0 0 0 100px #0003}
.wj-camera-button{grid-column:1/-1;justify-self:stretch;margin-top:8px}
/* Match the inner button's top, bottom and right inset to the search pill. */
.hero-search .search-input{height:var(--control-height)!important;min-height:var(--control-height)!important;padding:3px 3px 3px 16px!important;gap:10px}
.hero-search .search-input>.btn{height:calc(var(--control-height) - 8px)!important;min-height:0!important;max-height:calc(var(--control-height) - 8px)!important;flex:0 0 auto;align-self:center;margin:0!important;padding:0 18px!important;border-radius:999px!important;box-shadow:none!important;transform:none!important;line-height:1}
.hero-search .search-input:focus-within{box-shadow:none!important}
:root{--control-height:44px;--control-radius:999px;--admin-header-height:64px}
.search-input,.admin-search-field,.lyfe-select,select:not(.lyfe-native-select),input[type=search]{box-sizing:border-box;min-height:var(--control-height);border-radius:var(--control-radius)!important;font-family:inherit;font-size:14px;line-height:1.4}
.search-input,.admin-search-field{display:flex;align-items:center;gap:10px;padding:0 16px!important;background:var(--surface);border:1px solid var(--border-strong,var(--border));box-shadow:none;outline:none!important}
.search-input input,.admin-search-field input{border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;margin:0!important;min-width:0;min-height:0;height:auto;flex:1;font:inherit;color:inherit}
.search-input svg,.admin-search-field>svg,.lyfe-select>svg{flex-shrink:0;align-self:center}
.search-input:focus-within,.admin-search-field:focus-within{outline:0!important;box-shadow:none!important;border-color:color-mix(in srgb,var(--accent) 55%,var(--border-strong))}
.search-input:hover,.admin-search-field:hover{border-color:var(--text-secondary)}
.lyfe-select-wrap{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important}
.lyfe-select,select:not(.lyfe-native-select),input[type=search]{padding:10px 16px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border-strong,var(--border));box-shadow:none}
.lyfe-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lyfe-select:disabled{opacity:.5;cursor:not-allowed}
.lyfe-options{background:var(--surface);color:var(--text-primary);border-radius:18px;padding:8px;box-shadow:0 12px 36px #0002;animation:lyfe-menu-in .14s ease-out}
.lyfe-option{border-radius:10px;padding:10px 12px;color:inherit}.lyfe-option[aria-selected=true]{background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--text-primary)}
.topbar .tb-search,.lt-search{border:0!important;box-shadow:none!important;background:transparent!important}
.topbar .search-input{color:#f3f5f8;background:rgba(255,255,255,.06);border-color:var(--chrome-border)}
.topbar .search-input input{color:inherit!important}.topbar .search-input input::placeholder{color:#a5adba}
.sidebar .brand,.topbar{height:var(--admin-header-height)!important;min-height:var(--admin-header-height)!important;max-height:var(--admin-header-height)!important;flex-shrink:0;box-sizing:border-box;border-bottom:1px solid var(--chrome-border)}
.sidebar .brand{padding:0 20px!important;display:flex;align-items:center}.sidebar .brand .mark{flex-shrink:0}
@keyframes lyfe-menu-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:760px){.search-input input,.admin-search-field input,.lyfe-select,input[type=search]{font-size:16px}.topbar .tb-search .search-input{padding:0 12px!important}.lyfe-select{max-width:100%}}
@media(prefers-reduced-motion:reduce){.lyfe-options{animation:none}}

/* Keep the enhanced dial selector compact; reserve the remaining row for the number. */
.phone-input{display:flex;align-items:stretch;gap:10px;width:100%;min-width:0}
.phone-input>.lyfe-select-wrap{flex:0 0 124px;width:124px!important;min-width:0}
.phone-input>.lyfe-select-wrap .lyfe-select{width:100%;padding-left:14px;padding-right:12px}
.phone-input>input[type=tel]{flex:1 1 0;width:0;min-width:0;min-height:44px;border-radius:999px}
@media(max-width:400px){.phone-input>.lyfe-select-wrap{flex-basis:112px;width:112px!important}}
.offering-flow .field{margin:14px 0}.offering-flow progress{width:100%;accent-color:var(--accent)}.offering-tags{border:1px solid var(--border);border-radius:16px;padding:12px;margin:14px 0}.offering-tags label{display:inline-flex;align-items:center;gap:6px;padding:8px}.offering-media{display:flex;flex-wrap:wrap;gap:12px}.offering-media figure{margin:0}.offering-media img{display:block;width:140px;height:100px;object-fit:cover;border-radius:12px}.offering-flow .dlg-actions{flex-wrap:wrap}
.offering-flow progress{height:6px;border:0;border-radius:999px;overflow:hidden;background:var(--border)}.offering-flow progress::-webkit-progress-bar{background:var(--border)}.offering-flow progress::-webkit-progress-value{background:var(--accent);border-radius:999px}

/* One currency surface, with no nested input outline or rounded inner box. */
.money-input{width:100%;min-width:0;min-height:var(--control-height);box-sizing:border-box;border-radius:var(--control-radius);align-items:center;background:var(--surface);transition:border-color .15s}
.money-input .money-input-prefix{align-self:stretch;justify-content:center;background:transparent;border:0;padding:0 0 0 16px;color:var(--text-secondary)}
.field .money-input input,.money-input input{width:0;flex:1 1 0;min-width:0;min-height:42px;margin:0!important;padding:10px 16px 10px 12px!important;border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:var(--text-primary);font:inherit}
.money-input:focus-within{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent)}
.money-input:has(input:disabled){opacity:.55;cursor:not-allowed}
.money-input:has(input[aria-invalid=true]){border-color:var(--danger,#c23d35)}
.av-head>.av-summary{flex-basis:100%;line-height:1.5}
.av-head>.av-summary svg{flex-shrink:0}
@media(max-width:480px){.field .money-input input{font-size:16px}.av-head>.btn{flex-shrink:0}.av-stats strong{overflow-wrap:anywhere}}
#modalRoot .field .money-input input,#panelRoot .field .money-input input,body .field .money-input input[type=number]{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;outline:0!important}
.device-update-note{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:5000;display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:min(640px,calc(100% - 32px));padding:16px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 32px #0003}.device-notification-actions{display:flex;flex-wrap:wrap;gap:12px}#device-notification-controls{margin-top:20px}
/* Responsive polish shared by all four portals. Preserve intentional local table scrolling. */
#mainContent,.main-col,.card,.panel-section,.field,.form-grid>*{min-width:0}
#mainContent img,#mainContent video{max-width:100%;height:auto}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.modal-box,.side-panel{max-height:calc(100dvh - env(safe-area-inset-top,0px));min-width:0}
.dlg-body{min-height:0;overflow-x:hidden;scroll-padding-bottom:90px}
.dlg-title,.card h3,.panel-section h4{overflow-wrap:anywhere}
@media(min-width:1800px){.light-shell>#mainContent{max-width:1600px;margin-inline:auto}.shell #mainContent:not(.full){max-width:1800px;margin-inline:auto}}
@media(max-width:760px){
 #mainContent{padding-left:14px;padding-right:14px}
 .form-grid,.pm-row3{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 .form-grid>.field{grid-column:1/-1!important}
 .field input:not([type=checkbox]):not([type=radio]),.field textarea,.lsel-trigger{font-size:16px!important}
 .dlg-head{padding:14px 16px!important}.dlg-body{padding:16px!important}
 .dlg-body .dlg-actions:last-child{margin-inline:-16px!important;padding-inline:16px!important}
 .dlg-actions>.btn{min-height:44px;flex:1 1 120px;white-space:normal}
 .modal-close{min-width:44px;min-height:44px}
 .table-wrap{border-radius:12px}.table-wrap td,.table-wrap th{padding:10px 12px}
 .device-update-note{bottom:calc(82px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:360px){
 #mainContent{padding-inline:10px}.hero-search .search-input{padding-left:10px!important;gap:6px}.hero-search .search-input>.btn{padding-inline:12px!important}
 .av-stats{grid-template-columns:1fr}.av-head{gap:12px}.av-days{gap:6px}
 .form-grid{padding:12px!important}.device-notification-actions>.btn{width:100%}
}
@media(max-height:520px) and (orientation:landscape){.modal-overlay{padding:8px!important}.modal-box{max-height:calc(100dvh - 16px)!important}.dlg-head{padding-block:8px!important}.dlg-body{padding-top:10px!important}}
.xp-row,.xp-search,.xp-chips{min-width:0;max-width:100%}.xp-search{width:0}.sm-quick{min-width:0;flex-wrap:wrap}@media(max-width:600px){.sm-quick>.btn{min-width:0!important;width:100%;max-width:100%;white-space:normal;min-height:44px}.xp-row{flex-wrap:wrap}.xp-row>.xp-search{flex:1 1 160px}.xp-filter-btn{flex:0 0 auto}}


/* Gentle dialog motion; leave the rest of the interface's timing unchanged. */
@keyframes lyfe-dialog-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes lyfe-dialog-exit{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px) scale(.99)}}
@keyframes lyfe-panel-enter{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
@keyframes lyfe-panel-exit{from{opacity:1;transform:none}to{opacity:0;transform:translateX(28px)}}
#modalRoot .modal-box{animation:lyfe-dialog-enter 360ms cubic-bezier(.22,1,.36,1) both}
#modalRoot .side-panel{animation:lyfe-panel-enter 400ms cubic-bezier(.22,1,.36,1) both}
#modalRoot .modal-overlay.closing .modal-box{animation:lyfe-dialog-exit 280ms ease-in both}
#modalRoot .side-panel-overlay.closing .side-panel{animation:lyfe-panel-exit 280ms ease-in both}
@media(prefers-reduced-motion:reduce){#modalRoot .modal-box,#modalRoot .side-panel{animation:none!important}}

/* Shared motion rhythm across portals and the populated preview. */
:root{--dur-fast:.24s;--dur-base:.42s;--dur-slow:.56s;--dur-celebrate:.64s;--ease-glide:cubic-bezier(.22,1,.36,1);--ease-standard:cubic-bezier(.4,0,.2,1)}
@keyframes lyfe-soft-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes lyfe-soft-hide{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)}}
.container,.content-area{animation:lyfe-soft-reveal 480ms var(--ease-glide)}
.lsel-pop,.lyfe-options,.admin-search-panel,.dropdown-menu,.popover{animation:lyfe-soft-reveal 320ms var(--ease-glide)}
.sidebar,.sidebar-scrim,.mobile-tab-bar{transition-duration:360ms;transition-timing-function:var(--ease-glide)}
#modalRoot .modal-box{animation-duration:480ms}
#modalRoot .side-panel{animation-duration:520ms}
#modalRoot .modal-overlay.closing .modal-box,#modalRoot .side-panel-overlay.closing .side-panel{animation-duration:360ms;animation-timing-function:cubic-bezier(.4,0,.6,1)}
::view-transition-old(root){animation:lyfe-soft-hide 220ms ease-out both}
::view-transition-new(root){animation:lyfe-soft-reveal 480ms cubic-bezier(.22,1,.36,1) both}
html.lyfe-view-transition .container,html.lyfe-view-transition .content-area{animation:none!important}
@media(prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-celebrate:0s}.container,.content-area,.lsel-pop,.lyfe-options,.admin-search-panel,.dropdown-menu,.popover{animation:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}.sidebar,.sidebar-scrim,.mobile-tab-bar{transition:none!important}}
