/* ALFA Student Pass 3.3 — responsive institutional UI layer */
.asp-root,.asp-dashboard-view{--asp-ease:cubic-bezier(.22,1,.36,1);--asp-focus:#b32635; -webkit-tap-highlight-color:transparent}
.asp-root *, .asp-dashboard-view *{box-sizing:border-box}
.asp-dashboard-view{min-width:0;overflow-wrap:anywhere}
.asp-dashboard-view img,.asp-root img{max-width:100%;height:auto}
.asp-dashboard-view button,.asp-dashboard-view a,.asp-dashboard-view input,.asp-dashboard-view select,.asp-dashboard-view textarea{font-family:inherit}
.asp-dashboard-view button,.asp-dashboard-view [role="button"]{transition:transform .22s var(--asp-ease),box-shadow .22s ease,filter .22s ease;cursor:pointer}
@media(hover:hover) and (pointer:fine){.asp-dashboard-view button:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.035)}.asp-dashboard-view .asp-benefit-card:hover,.asp-dashboard-view .asp-private-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(23,20,49,.13)}}
.asp-dashboard-view :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--asp-focus);outline-offset:3px}
.asp-dashboard-view :is(.asp-benefit-card,.asp-private-card,.asp-personal-stats,.asp-staff-metrics,.asp-inbox-swipe,.asp-ai-window){transition:transform .3s var(--asp-ease),box-shadow .3s ease,border-color .3s ease}
.asp-dashboard-view :is(input,select,textarea){max-width:100%;min-height:44px}
.asp-dashboard-view :is(.asp-staff-table,.asp-leaderboard,.asp-request-history){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.asp-dashboard-view :is(.asp-staff-table,.asp-leaderboard,.asp-request-history) table{min-width:540px}
.asp-dashboard-view .asp-ai-window{max-width:min(420px,calc(100vw - 24px));max-height:min(740px,calc(100dvh - 36px));overflow:hidden}
.asp-dashboard-view .asp-ai-window :is(input,textarea){font-size:16px}
.asp-dashboard-view .asp-inbox-swipe>article{will-change:transform}
.asp-dashboard-view .asp-inbox-controls :is(input,button){min-height:44px}
.asp-dashboard-view .asp-inbox-delete-one{min-width:44px;min-height:44px}
.asp-dashboard-view .asp-inbox-swipe.asp-inbox-removing{transition:opacity .3s ease,transform .3s var(--asp-ease),max-height .3s ease,margin .3s ease}
@media(max-width:900px){.asp-dashboard-view :is(.asp-staff-form-grid,.asp-staff-edit-grid){grid-template-columns:repeat(2,minmax(0,1fr))}.asp-dashboard-view :is(.asp-staff-panel,.asp-inbox,.asp-redeem-page){min-width:0}}
@media(max-width:640px){
 .asp-root,.asp-dashboard-view{width:100%;max-width:100%;min-width:0}
 .asp-dashboard-view{padding-bottom:env(safe-area-inset-bottom,0px)}
 .asp-dashboard-view :is(.asp-staff-form-grid,.asp-staff-edit-grid,.asp-personal-stat-grid,.asp-request-types,.asp-request-fields){grid-template-columns:minmax(0,1fr)}
 .asp-dashboard-view :is(.asp-staff-hero,.asp-success-visual){grid-template-columns:minmax(0,1fr);gap:14px}
 .asp-dashboard-view .asp-success-visual img{width:min(220px,100%);margin:auto}
 .asp-dashboard-view .asp-inbox-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
 .asp-dashboard-view .asp-inbox-controls input{width:100%;grid-column:span 2;min-width:0}
 .asp-dashboard-view .asp-inbox-controls button{width:100%;min-width:0}
 .asp-dashboard-view .asp-ai-window{position:fixed;inset:auto 8px calc(8px + env(safe-area-inset-bottom,0px)) 8px;width:auto;max-width:none;max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:20px}
 .asp-dashboard-view :is(.asp-user-nav,.asp-filters){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .asp-dashboard-view :is(.asp-panel-heading,.asp-welcome){overflow-wrap:anywhere}
 .asp-dashboard-view :is(button,a){touch-action:manipulation}
}
@media(max-width:380px){.asp-dashboard-view .asp-inbox-controls{grid-template-columns:minmax(0,1fr)}.asp-dashboard-view .asp-inbox-controls input{grid-column:auto}.asp-dashboard-view .asp-ai-window{inset-inline:4px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.asp-dashboard-view *, .asp-dashboard-view *::before,.asp-dashboard-view *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* 3.3.1 — mobile navigation and robust partner-brand presentation */
.asp-mobile-menu-toggle{display:none!important}
.asp-partner-modal-logo{min-height:110px;display:flex;align-items:center;justify-content:center}
.asp-partner-modal-logo img{display:block!important;visibility:visible!important;opacity:1!important;object-fit:contain!important;max-height:135px!important;max-width:100%!important;transform:none!important}
.asp-coupon-logos{display:flex!important;align-items:center!important;justify-content:center!important;gap:18px!important}
.asp-coupon-logos img{display:block!important;visibility:visible!important;opacity:1!important;object-fit:contain!important;transform:none!important;max-width:44%!important;max-height:95px!important;width:auto!important;height:auto!important}
.asp-coupon-issued span{display:block;margin-top:8px}
@media(max-width:700px){
.asp-app-header{display:flex!important;align-items:center!important;justify-content:space-between!important;position:relative;z-index:110;gap:12px;padding-inline:14px!important}
.asp-app-brand{min-width:0;flex:1}
.asp-app-brand img{max-width:125px!important;max-height:54px!important;object-fit:contain}
.asp-mobile-menu-toggle{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:0 0 46px;width:46px;height:46px;border:1px solid #e5e5e5;border-radius:14px;background:#fff;color:#252525;z-index:113}
.asp-mobile-menu-toggle span{display:block;width:21px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s}
.asp-mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.asp-mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.asp-mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.asp-app-header .asp-user-nav{display:none!important;position:absolute!important;top:calc(100% + 8px);left:12px;right:12px;z-index:112;background:#fff!important;color:#252525!important;border:1px solid #e9e9e9;border-radius:20px;padding:14px!important;box-shadow:0 22px 65px rgba(0,0,0,.22);max-height:min(75dvh,650px);overflow-y:auto!important;overflow-x:hidden!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important}
.asp-app-header .asp-user-nav.asp-menu-open{display:flex!important;animation:aspMenuEnter .22s ease-out}
.asp-app-header .asp-user-nav > *{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;width:100%!important;min-height:46px!important;padding:9px 13px!important;border-radius:12px!important;text-align:left!important;max-width:none!important}
.asp-app-header .asp-user-nav .asp-nav-icon b,.asp-app-header .asp-user-nav .asp-install-app b,.asp-app-header .asp-user-nav .asp-profile-link b{display:inline!important;visibility:visible!important}
.asp-app-header .asp-user-nav .asp-logout{justify-content:center!important}
.asp-partner-modal{width:calc(100vw - 24px)!important;max-height:calc(100dvh - 40px)!important;overflow-y:auto!important}
.asp-partner-modal-logo{min-height:95px!important}
.asp-coupon-modal{max-height:calc(100dvh - 28px)!important;overflow-y:auto!important}
.asp-coupon-logos img{max-height:72px!important}
}
@keyframes aspMenuEnter{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.asp-app-header .asp-user-nav.asp-menu-open{animation:none}}

/* 3.3.2: consistent original partner logos on mobile and desktop */
.asp-root .asp-card-logo { display:grid!important; place-items:center!important; overflow:hidden!important; background:#fff!important; }
.asp-root .asp-card-logo > img,
.asp-root .asp-partner-modal-logo > img {
  display:block!important; visibility:visible!important; opacity:1!important;
  width:100%!important; height:100%!important; max-width:100%!important;
  object-fit:contain!important; object-position:center!important;
  transform:none!important; filter:none!important; mix-blend-mode:normal!important;
}
.asp-root .asp-card-logo > img { position:absolute!important; inset:0!important; padding:9px!important; }
@media(max-width:700px) {
  .asp-root .asp-card-logo { width:min(100%,190px)!important; height:104px!important; }
  .asp-root .asp-card-logo > img { padding:10px!important; }
}

/* 3.3.3 Smart Logo Engine: display the full-resolution cropped result without CSS zoom. */
.asp-root .asp-card-logo > img,.asp-root .asp-partner-modal-logo > img {
  box-sizing:border-box!important; padding:5px!important; transform:none!important;
  object-fit:contain!important; image-rendering:auto!important;
}
@media(max-width:700px){.asp-root .asp-card-logo > img{padding:4px!important}}
/* 3.4.0: unified coupon interaction, reliable responsive logo framing */
.asp-benefit-card{cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.asp-benefit-card:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(27,22,40,.15)}
.asp-benefit-card:focus-visible{outline:3px solid #e10b18;outline-offset:3px}
.asp-benefit-card.asp-coupon-launching{transform:scale(.975);box-shadow:0 0 0 5px rgba(239,0,24,.15),0 15px 48px rgba(230,0,30,.2)}
.asp-card-logo{overflow:hidden!important;isolation:isolate}
.asp-card-logo>img{max-width:100%!important;max-height:100%!important;object-fit:contain!important;transform-origin:center center!important}
.asp-card-logo>img.asp-logo-fitted{transform:translate(var(--asp-logo-x,0%),var(--asp-logo-y,0%)) scale(var(--asp-logo-zoom,1))!important}
.asp-coupon-logos>img{width:clamp(100px,25vw,205px)!important;height:clamp(100px,25vw,205px)!important;aspect-ratio:1!important;object-fit:contain!important;border-radius:18px!important;overflow:hidden}
.asp-coupon-logos>img:first-child.asp-logo-fitted{transform:translate(var(--asp-logo-x,0%),var(--asp-logo-y,0%)) scale(var(--asp-logo-zoom,1))!important}
.asp-coupon-modal{animation:aspTicketReveal .48s cubic-bezier(.2,.8,.2,1) both}
@keyframes aspTicketReveal{from{opacity:0;transform:translateY(24px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
.asp-benefit-details a{color:#6c26db;text-decoration:underline;text-underline-offset:3px}
.asp-radio-premium{display:flex!important;align-items:center;gap:12px!important;min-width:0;background:linear-gradient(115deg,#17151f,#29212d)!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:22px!important;padding:12px 15px!important;box-shadow:0 15px 45px rgba(0,0,0,.3)!important}
.asp-radio-premium .asp-music-play{flex:none;box-shadow:0 0 0 5px rgba(255,0,28,.12);transition:transform .2s,box-shadow .2s}
.asp-radio-premium .asp-music-play:hover{transform:scale(1.08)}
.asp-radio-premium .asp-radio-info{display:flex!important;flex:1;min-width:0;flex-direction:column;gap:3px}
.asp-radio-premium .asp-radio-info strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asp-radio-premium .asp-radio-bars{display:flex!important;align-items:end;height:12px;gap:3px;margin-top:3px}
.asp-radio-bars i{display:block;width:3px;height:4px;border-radius:3px;background:#ff2639;animation:aspRadioBeat .75s ease-in-out infinite alternate;animation-play-state:paused}
.asp-radio-bars i:nth-child(2){animation-delay:.15s}.asp-radio-bars i:nth-child(3){animation-delay:.3s}.asp-radio-bars i:nth-child(4){animation-delay:.08s}.asp-radio-bars i:nth-child(5){animation-delay:.25s}
.asp-radio-premium.is-playing .asp-radio-bars i{animation-play-state:running}
@keyframes aspRadioBeat{to{height:12px}}
.asp-radio-premium .asp-radio-volume-toggle{flex:none;border:0;background:rgba(255,255,255,.1);color:white;border-radius:50%;width:32px;height:32px;cursor:pointer}
.asp-radio-premium input[type=range]{width:66px!important}
@media(max-width:700px){.asp-card-logo{width:190px!important;height:115px!important;max-width:100%}.asp-radio-premium{max-width:calc(100vw - 110px)!important;left:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;padding:9px 11px!important;gap:9px!important}.asp-radio-premium .asp-radio-info strong{font-size:11px}.asp-radio-premium input[type=range]{display:none!important}.asp-radio-premium.asp-volume-open input[type=range]{display:block!important;position:absolute;bottom:100%;right:4px;background:#201d26;padding:10px;border-radius:12px;width:110px!important}.asp-coupon-logos{gap:10px!important}.asp-coupon-logos>img{width:min(37vw,155px)!important;height:min(37vw,155px)!important}}
@media(prefers-reduced-motion:reduce){.asp-benefit-card,.asp-coupon-modal,.asp-radio-bars i{animation:none!important;transition:none!important}}

/* 3.4.1 — source-resolution logo crop, no conflicting transforms */
.asp-card-logo>img.asp-logo-smart-cropped,
.asp-coupon-logos>img:first-child.asp-logo-smart-cropped {
  transform:none!important; object-fit:contain!important;
  object-position:center!important; width:100%!important;height:100%!important;
  max-width:100%!important;max-height:100%!important;
}
.asp-coupon-logos>img:first-child {object-fit:contain!important;}
.asp-coupon-logos>img:first-child.asp-logo-smart-cropped {width:clamp(100px,25vw,205px)!important;height:clamp(100px,25vw,205px)!important;}
@media(max-width:700px){.asp-coupon-logos>img:first-child.asp-logo-smart-cropped{width:min(37vw,155px)!important;height:min(37vw,155px)!important}}
/* Coupon reward animation is visible INSIDE the modal, not only on the backdrop. */
.asp-coupon-modal {isolation:isolate;animation:aspTicketReveal .52s cubic-bezier(.16,1,.3,1) both!important;}
.asp-coupon-modal:before {pointer-events:none;}
.asp-coupon-modal > small {display:inline-block;animation:aspRewardRise .65s .20s both;}
.asp-coupon-modal h2 {animation:aspRewardRise .7s .32s both;}
.asp-coupon-modal .asp-coupon-logos {animation:aspRewardRise .7s .12s both;}
.asp-coupon-modal .asp-coupon-issued {animation:aspRewardRise .8s .48s both;}
.asp-coupon-modal .asp-coupon-benefit,
.asp-coupon-modal .asp-benefit-code,
.asp-coupon-modal .asp-coupon-code {
  position:relative;isolation:isolate;
  animation:aspRewardPop .85s .62s both,aspRewardGlow 2.8s 1.5s ease-in-out infinite;
  box-shadow:0 0 0 1px rgba(230,0,25,.2),0 0 25px rgba(240,0,28,.16)!important;
}
.asp-coupon-modal .asp-coupon-issued strong,
.asp-coupon-modal .asp-coupon-issued span {display:inline-block;animation:aspRewardRise .7s .65s both;}
@keyframes aspRewardRise{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes aspRewardPop{0%{opacity:0;transform:scale(.88)}65%{opacity:1;transform:scale(1.035)}100%{opacity:1;transform:scale(1)}}
@keyframes aspRewardGlow{0%,100%{box-shadow:0 0 0 1px rgba(230,0,25,.2),0 0 16px rgba(240,0,28,.1)}50%{box-shadow:0 0 0 2px rgba(230,0,25,.48),0 0 34px rgba(240,0,28,.33)}}
@media(prefers-reduced-motion:reduce){.asp-coupon-modal,.asp-coupon-modal *, .asp-coupon-modal .asp-coupon-benefit,.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code{animation:none!important;filter:none!important}}

/* 3.4.2: consistent partner card artwork and breathable coupon typography */
.asp-root .asp-card-logo{display:flex!important;align-items:center!important;justify-content:center!important;aspect-ratio: 1.65 / 1;overflow:hidden!important}
.asp-root .asp-card-logo>img.asp-logo-smart-cropped{position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:100%!important;padding:4px!important;object-fit:contain!important;object-position:center!important;transform:none!important}
.asp-coupon-modal{line-height:1.55!important;overflow-y:auto;max-height:calc(100dvh - 32px);padding:clamp(22px,4vw,42px)!important}
.asp-coupon-modal h2{line-height:1.22!important;letter-spacing:-.025em!important;margin:16px 0 30px!important;text-wrap:balance}
.asp-coupon-modal .asp-coupon-issued{display:flex!important;flex-direction:column!important;align-items:center!important;gap:9px!important;line-height:1.5!important;padding:24px 20px!important;margin:0 0 26px!important}
.asp-coupon-modal .asp-coupon-issued strong{display:block!important;margin:0!important;font-size:clamp(19px,2.5vw,25px)!important;line-height:1.35!important}
.asp-coupon-modal .asp-coupon-issued span{display:block!important;margin:0!important;font-size:clamp(12px,1.5vw,14px)!important;line-height:1.6!important}
.asp-coupon-modal .asp-benefit-code{margin:4px 0 24px!important;min-height:80px;align-items:center}
.asp-coupon-modal .asp-coupon-instructions{line-height:1.7!important;margin:18px 0 24px!important}
.asp-coupon-modal .asp-benefit-details{gap:12px!important;margin-top:20px!important}
.asp-coupon-modal .asp-coupon-issued strong,.asp-coupon-modal .asp-coupon-issued span{display:block!important;animation:aspRewardRise .65s both!important}
.asp-coupon-modal .asp-coupon-issued strong{animation-delay:.48s!important}
.asp-coupon-modal .asp-coupon-issued span:nth-of-type(1){animation-delay:.70s!important}
.asp-coupon-modal .asp-coupon-issued span:nth-of-type(2){animation-delay:.86s!important}
.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code{animation:aspRewardPop .85s .7s both,aspRewardGlow 1.7s 1.55s ease-in-out 3!important}
@keyframes aspRewardGlow{0%,100%{box-shadow:0 0 0 1px rgba(230,0,25,.15),0 0 10px rgba(240,0,28,.08)}50%{box-shadow:0 0 0 3px rgba(230,0,25,.6),0 0 36px rgba(240,0,28,.46)}}
@media(max-width:700px){.asp-coupon-modal{padding:24px 17px!important}.asp-coupon-modal h2{font-size:clamp(21px,5.6vw,28px)!important;margin:12px 0 22px!important}.asp-coupon-modal .asp-coupon-issued{padding:19px 12px!important}.asp-coupon-modal .asp-benefit-details p{grid-template-columns:90px minmax(0,1fr)!important;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.asp-coupon-modal .asp-coupon-issued strong,.asp-coupon-modal .asp-coupon-issued span,.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code{animation:none!important}}

/* 3.4.3: unified artwork and compositor-friendly coupon transitions */
.asp-root .asp-card-logo{width:190px!important;max-width:100%!important;height:116px!important;aspect-ratio:auto!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important}
.asp-root .asp-card-logo img,.asp-root .asp-card-logo img.asp-logo-smart-cropped{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important;transform:none!important;position:static!important;inset:auto!important;padding:0!important;filter:none!important}
.asp-coupon-modal,.asp-coupon-modal h2,.asp-coupon-modal .asp-coupon-issued,.asp-coupon-modal .asp-coupon-logos{will-change:transform,opacity}
/* Avoid expensive animated blur and box-shadow on mobile GPU. */
@keyframes aspRewardRise{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.asp-coupon-modal .asp-coupon-issued strong,.asp-coupon-modal .asp-coupon-issued span{filter:none!important}
.asp-coupon-modal .asp-coupon-benefit,.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code{animation:aspRewardPop .55s .3s both!important;box-shadow:0 0 0 2px rgba(230,0,25,.25),0 0 16px rgba(240,0,28,.12)!important}
@media(max-width:700px){.asp-root .asp-card-logo{width:190px!important;height:116px!important}.asp-coupon-modal{backdrop-filter:none!important}}
@media(prefers-reduced-motion:reduce){.asp-coupon-modal,.asp-coupon-modal *{animation:none!important;transition:none!important}}


/* v3.4.4: keep artwork within its own card box; never overlap featured badge. */
.asp-root .asp-card-logo {
  position:relative!important; inset:auto!important;
  width:170px!important; height:112px!important;
  max-width:calc(100% - 12px)!important;
  min-width:0!important; flex:0 0 auto!important;
  margin:0!important; padding:6px!important;
  box-sizing:border-box!important; overflow:hidden!important;
  isolation:isolate!important; z-index:0!important;
  transform:none!important;
}
.asp-root .asp-card-logo > img,
.asp-root .asp-card-logo > img.asp-logo-smart-cropped {
  position:relative!important; inset:auto!important;
  display:block!important; width:100%!important; height:100%!important;
  max-width:100%!important; max-height:100%!important;
  margin:0!important; padding:0!important;
  object-fit:contain!important; transform:none!important;
}
@media(max-width:700px){
  .asp-root .asp-card-logo{width:156px!important;height:104px!important;max-width:calc(100% - 12px)!important}
}
/* Keep close action above all animated content and reachable on iOS PWA. */
.asp-modal-backdrop{z-index:999990!important;overscroll-behavior:contain}
.asp-coupon-modal{position:relative!important;isolation:isolate!important}
.asp-coupon-modal .asp-modal-close{
  position:sticky!important;top:0!important;float:right!important;
  z-index:999!important;display:grid!important;place-items:center!important;
  width:44px!important;height:44px!important;min-width:44px!important;
  margin:-12px -12px 0 0!important;border-radius:50%!important;
  background:#f3f3f5!important;color:#333!important;
  text-decoration:none!important;line-height:1!important;
  pointer-events:auto!important;touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent;
}
.asp-coupon-modal .asp-modal-close:focus-visible{outline:3px solid #f00!important;outline-offset:2px}
@media(max-width:700px){
 .asp-modal-backdrop{padding:10px!important;align-items:center!important}
 .asp-coupon-modal{max-height:calc(100dvh - 20px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}
}

/* v3.4.5: isolate partner art and reserve badge space. */
.asp-root .asp-benefit-card {position:relative!important;}
.asp-root .asp-benefit-card .asp-card-featured {position:absolute!important;right:16px!important;top:18px!important;z-index:5!important;}
.asp-root .asp-benefit-card .asp-card-logo {width:165px!important;height:112px!important;max-width:calc(100% - 145px)!important;margin:0 0 22px!important;padding:0!important;overflow:hidden!important;z-index:1!important;isolation:isolate!important;transform:none!important;}
.asp-root .asp-benefit-card .asp-card-logo img {width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;position:static!important;transform:none!important;padding:0!important;}
@media(max-width:700px){.asp-root .asp-benefit-card .asp-card-logo{width:150px!important;height:105px!important;max-width:calc(100% - 130px)!important;}}

/* v3.4.6: predictable partner artwork, no stretching or overlay. */
.asp-root .asp-benefit-card .asp-card-logo{width:180px!important;height:116px!important;max-width:calc(100% - 152px)!important;min-width:0!important;position:relative!important;margin:0 0 22px!important;overflow:hidden!important;z-index:1!important;border-radius:16px!important;}
.asp-root .asp-benefit-card .asp-card-logo img[data-asp-server-logo]{width:100%!important;height:100%!important;display:block!important;object-fit:contain!important;object-position:center!important;position:static!important;transform:none!important;padding:6px!important;box-sizing:border-box!important;}
.asp-root .asp-benefit-card .asp-card-featured{z-index:4!important;}
.asp-coupon-logos img[data-asp-server-logo]{object-fit:contain!important;transform:none!important;}
@media(max-width:700px){.asp-root .asp-benefit-card .asp-card-logo{width:156px!important;height:108px!important;max-width:calc(100% - 135px)!important;}}

/* 3.4.7: brand artwork and coupon header layout — no overlap. */
.asp-root .asp-benefit-card .asp-card-logo {
  width: min(220px, calc(100% - 150px))!important;
  max-width: min(220px, calc(100% - 150px))!important;
  height: 126px!important;
  min-width: 0!important;
  margin: 0 0 22px!important;
  border-radius: 16px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  overflow:hidden!important;
}
.asp-root .asp-benefit-card .asp-card-logo > img,
.asp-root .asp-benefit-card .asp-card-logo > img[data-asp-server-logo] {
  width:100%!important;height:100%!important;max-width:100%!important;
  max-height:100%!important;object-fit:contain!important;object-position:center!important;
  padding:4px!important;margin:0!important;transform:none!important;
  position:static!important;box-sizing:border-box!important;
}
.asp-coupon-modal {position:relative!important;}
.asp-coupon-modal .asp-modal-close {
  position:absolute!important;float:none!important;top:16px!important;right:16px!important;
  margin:0!important;z-index:1000!important;width:44px!important;height:44px!important;
}
.asp-coupon-modal .asp-coupon-logos {
  display:grid!important;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr)!important;
  gap:18px!important;align-items:center!important;justify-items:center!important;
  width:100%!important;max-width:100%!important;box-sizing:border-box!important;
  padding:42px 0 0!important;margin:0 0 26px!important;min-height:0!important;
}
.asp-coupon-modal .asp-coupon-logos > img,
.asp-coupon-modal .asp-coupon-logos > img:first-child,
.asp-coupon-modal .asp-coupon-logos > img[data-asp-server-logo] {
  width:100%!important;max-width:100%!important;height:142px!important;
  max-height:142px!important;min-width:0!important;object-fit:contain!important;
  object-position:center!important;box-sizing:border-box!important;padding:3px!important;
  margin:0!important;transform:none!important;display:block!important;
}
.asp-coupon-modal .asp-coupon-logos > img:last-child {padding:10px!important;}
.asp-coupon-modal .asp-coupon-logos > i {width:1px!important;height:70px!important;}
@media(max-width:700px){
  .asp-root .asp-benefit-card .asp-card-logo {width:min(185px,calc(100% - 132px))!important;max-width:min(185px,calc(100% - 132px))!important;height:112px!important;}
  .asp-coupon-modal .asp-coupon-logos {gap:10px!important;padding-top:48px!important;}
  .asp-coupon-modal .asp-coupon-logos > img,
  .asp-coupon-modal .asp-coupon-logos > img:first-child,
  .asp-coupon-modal .asp-coupon-logos > img[data-asp-server-logo] {height:96px!important;max-height:96px!important;}
  .asp-coupon-modal .asp-coupon-logos > img:last-child {padding:5px!important;}
  .asp-coupon-modal .asp-modal-close {top:12px!important;right:12px!important;}
}

/* v3.4.8: desktop landscape partner logo area; preserve mobile layout. */
@media (min-width: 701px) {
 .asp-root .asp-benefit-card .asp-card-logo {
   box-sizing:border-box!important; width:100%!important;max-width:100%!important;
   height:146px!important;aspect-ratio:auto!important; margin:38px 0 22px!important;
   border-radius:16px!important; padding:10px!important;
   display:flex!important;align-items:center!important;justify-content:center!important;
   overflow:hidden!important;
 }
 .asp-root .asp-benefit-card .asp-card-logo > img,
 .asp-root .asp-benefit-card .asp-card-logo > img[data-asp-server-logo] {
   width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
   object-fit:contain!important;object-position:center!important;position:static!important;
   padding:0!important;margin:0!important;transform:none!important;
 }
 .asp-root .asp-benefit-card .asp-card-featured {z-index:5!important;}
}

/* 3.4.9: Desktop-only low-cost coupon reveal; preserve mobile appearance. */
@media (min-width:701px) {
  .asp-modal-backdrop { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; animation:none!important; }
  .asp-coupon-modal { animation:aspCouponFastIn .20s ease-out both!important; will-change:auto!important; }
  .asp-coupon-modal h2,.asp-coupon-modal .asp-coupon-logos,.asp-coupon-modal .asp-coupon-issued,
  .asp-coupon-modal .asp-coupon-issued strong,.asp-coupon-modal .asp-coupon-issued span,
  .asp-coupon-modal .asp-coupon-benefit,.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code {
    animation:none!important; filter:none!important; will-change:auto!important;
  }
  .asp-coupon-modal .asp-coupon-benefit,.asp-coupon-modal .asp-benefit-code,.asp-coupon-modal .asp-coupon-code {
    box-shadow:0 0 0 2px rgba(230,0,25,.22)!important;
  }
}
@keyframes aspCouponFastIn { from {opacity:0;transform:translate3d(0,8px,0)} to {opacity:1;transform:translate3d(0,0,0)} }

/* ALFA Student Pass — focused, nontechnical Staff Portal (3.12.0) */
.asp-staff-workspace .asp-staff-layout{max-width:1320px;margin:0 auto;padding:clamp(14px,3vw,34px) clamp(13px,3vw,30px) 110px;color:#20202b}
.asp-staff-workspace .asp-staff-hero{padding:clamp(24px,4vw,42px);border-radius:24px;background:linear-gradient(120deg,#151936 0%,#253870 100%);box-shadow:0 16px 34px rgba(19,30,75,.12)}
.asp-staff-workspace .asp-staff-hero>span{color:#ff9b9d;letter-spacing:.14em}
.asp-staff-workspace .asp-staff-hero h1{margin:10px 0 8px;font:800 clamp(27px,3.2vw,41px)/1.16 "Roboto Condensed",Arial,sans-serif;color:#fff}
.asp-staff-workspace .asp-staff-hero p{max-width:750px;margin:5px 0 16px;font-size:15px;color:#e4e9ff}
.asp-staff-workspace .asp-staff-role-line{display:flex;align-items:center;gap:9px 20px;flex-wrap:wrap;font-size:13px;color:#e9edff}
.asp-staff-workspace .asp-staff-role-line strong,.asp-staff-workspace .asp-staff-role-line span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.22);padding:7px 11px;border-radius:8px;background:rgba(255,255,255,.07)}
.asp-staff-workspace .asp-staff-workspace-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:22px 0;padding:0}
.asp-staff-workspace .asp-staff-workspace-tab{display:flex;align-items:center;gap:11px;position:relative;min-width:0;padding:13px 14px;border:1px solid #e2e5ee;border-radius:15px;background:#fff;text-decoration:none!important;color:#292a36;box-shadow:0 3px 12px rgba(27,33,61,.04);transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.asp-staff-workspace .asp-staff-workspace-tab:hover,.asp-staff-workspace .asp-staff-task-grid>a:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(28,35,69,.1);border-color:#c9cde0}
.asp-staff-workspace .asp-staff-workspace-tab:focus-visible,.asp-staff-workspace .asp-staff-task-grid>a:focus-visible{outline:3px solid #6f59e8;outline-offset:3px}
.asp-staff-workspace .asp-staff-workspace-tab.is-current{border:2px solid #ed2032;background:#fff6f7;padding:12px 13px;color:#8d101b}
.asp-staff-workspace .asp-staff-workspace-tab .asp-staff-tab-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#f0f1f7;color:#303963;font-size:19px}
.asp-staff-workspace .asp-staff-workspace-tab.is-current .asp-staff-tab-icon{background:#ffe1e5;color:#bc1425}
.asp-staff-workspace .asp-staff-workspace-tab>span:nth-child(2){min-width:0;flex:1}
.asp-staff-workspace .asp-staff-workspace-tab strong{display:block;font-size:14px;font-weight:850;line-height:1.2}
.asp-staff-workspace .asp-staff-workspace-tab small{display:block;margin-top:5px;line-height:1.35;font-size:11px;font-weight:500;color:#656b7a}
.asp-staff-workspace .asp-staff-task-count{flex:none;min-width:25px;height:25px;display:grid;place-items:center;padding:0 5px;border-radius:20px;background:#e3202d;color:#fff;font-size:12px}
.asp-staff-workspace .asp-staff-active-heading{padding:6px 0 14px;border-bottom:1px solid #dee1e9;margin:14px 0 18px}
.asp-staff-workspace .asp-staff-active-heading>span{font-size:10px;font-weight:850;letter-spacing:.11em;color:#7e8291}
.asp-staff-workspace .asp-staff-active-heading h2{font:800 clamp(25px,3vw,34px)/1.25 "Roboto Condensed",Arial,sans-serif;margin:3px 0;color:#222b46}
.asp-staff-workspace .asp-staff-active-heading p{margin:4px 0;color:#696f80;font-size:14px}
.asp-staff-workspace .asp-staff-panel{border:1px solid #ecedf2;border-radius:20px;margin:14px 0;padding:clamp(18px,2.5vw,32px)}
.asp-staff-workspace .asp-staff-welcome-panel h2,.asp-staff-workspace .asp-staff-today h2{margin:0 0 8px;font:800 26px "Roboto Condensed",Arial,sans-serif;color:#20263d}
.asp-staff-workspace .asp-staff-welcome-panel>p{margin:0 0 18px;color:#656b7a}
.asp-staff-workspace .asp-staff-task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:11px;margin-top:16px}
.asp-staff-workspace .asp-staff-task-grid>a{display:flex;flex-direction:column;gap:7px;border:1px solid #e7e8ed;border-radius:15px;padding:20px;min-width:0;background:#fbfbfe;color:#26283d;text-decoration:none!important;transition:box-shadow .18s ease,transform .18s ease}
.asp-staff-workspace .asp-staff-task-grid>a>span{font-size:25px}
.asp-staff-workspace .asp-staff-task-grid>a strong{font-size:17px;font-weight:850}
.asp-staff-workspace .asp-staff-task-grid>a small{color:#626a7c;font-size:13px}
.asp-staff-workspace .asp-staff-task-grid>a em{font-size:12px;font-weight:800;color:#ba1528;font-style:normal;margin-top:auto;padding-top:12px}
.asp-staff-workspace .asp-staff-today-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-top:14px}
.asp-staff-workspace .asp-staff-today-grid>*{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:17px;border:1px solid #e9e9ee;border-radius:14px;background:#fafafd;text-decoration:none!important;color:#343a4a}
.asp-staff-workspace .asp-staff-today-grid strong{font-size:29px;line-height:1;font-weight:900;color:#242b4c}
.asp-staff-workspace .asp-staff-today-grid span{font-size:13px;font-weight:600;line-height:1.4}
.asp-staff-workspace .asp-staff-stats-summary>.asp-panel-heading{flex-wrap:wrap}
.asp-staff-workspace .asp-staff-stats-summary .asp-staff-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px;margin:18px 0}
.asp-staff-workspace .asp-staff-stats-summary .asp-staff-metrics article{border:1px solid #e8e9ef;background:#f8f9fd;padding:17px;min-height:110px}
.asp-staff-workspace .asp-staff-stats-summary .asp-staff-metrics strong{color:#172142}
.asp-staff-workspace .asp-staff-empty{padding:24px;border-radius:12px;background:#f6f6fb;color:#626879;font-weight:600}
.asp-staff-workspace .asp-front-manager-filters input:focus-visible,.asp-staff-workspace .asp-front-manager-filters select:focus-visible{outline:2px solid #6b5ec6;outline-offset:2px}
.asp-staff-workspace .asp-front-manager-filters button{cursor:pointer}
.asp-staff-workspace .asp-staff-workspace-tab.is-current small{color:#8b454b}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-layout{color:#eceaf7}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-workspace-tab{background:#211b2c;border-color:#433750;color:#f2ecf7}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-workspace-tab.is-current{background:#3c202c;border-color:#f86575}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-workspace-tab small,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-active-heading p{color:#c4baca}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-active-heading h2,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-welcome-panel h2,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-today h2{color:#fff}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-active-heading{border-color:#40354c}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-task-grid>a,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-today-grid>*,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-stats-summary .asp-staff-metrics article{background:#251d32;border-color:#453952;color:#fff}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-task-grid>a small,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-today-grid span{color:#cfc7d8}
.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-today-grid strong,.asp-dashboard-view[data-theme="dark"].asp-staff-workspace .asp-staff-stats-summary .asp-staff-metrics strong{color:#fff}
@media(max-width:680px){.asp-staff-workspace .asp-staff-workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.asp-staff-workspace .asp-staff-workspace-tab{padding:10px;gap:8px}.asp-staff-workspace .asp-staff-workspace-tab.is-current{padding:9px}.asp-staff-workspace .asp-staff-workspace-tab .asp-staff-tab-icon{height:30px;width:30px;font-size:17px}.asp-staff-workspace .asp-staff-workspace-tab strong{font-size:12px}.asp-staff-workspace .asp-staff-workspace-tab small{font-size:10px}.asp-staff-workspace .asp-staff-task-grid{grid-template-columns:1fr}.asp-staff-workspace .asp-staff-hero{border-radius:18px}.asp-staff-workspace .asp-staff-panel{border-radius:16px}}
@media(max-width:350px){.asp-staff-workspace .asp-staff-workspace-nav{grid-template-columns:1fr}}


/* 3.41: keep mobile account menu legible in both themes. */
@media(max-width:700px){
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open{background:#181321!important;color:#f7f3ff!important;border-color:#413451!important;box-shadow:0 22px 65px rgba(0,0,0,.55)!important}
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open > *,
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open :is(a,button,b,span){color:#f7f3ff!important;opacity:1!important;-webkit-text-fill-color:#f7f3ff!important}
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open :is(a,button){background:#292137!important;border:1px solid #493a60!important}
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open :is(a,button):focus-visible{outline:2px solid #c29cff!important;outline-offset:2px}
.asp-dashboard-view[data-theme="dark"] .asp-mobile-menu-toggle{background:#261e31!important;border-color:#5a4771!important;color:#fff!important}
.asp-dashboard-view:not([data-theme="dark"]) .asp-app-header .asp-user-nav.asp-menu-open > *,
.asp-dashboard-view:not([data-theme="dark"]) .asp-app-header .asp-user-nav.asp-menu-open :is(a,button,b,span){color:#25212b!important;opacity:1!important;-webkit-text-fill-color:#25212b!important}
.asp-dashboard-view:not([data-theme="dark"]) .asp-app-header .asp-user-nav.asp-menu-open :is(a,button){background:#f6f3fc!important}
}

/* v3.43: reliable mobile menu contrast when dark mode is active. */
@media(max-width:700px){
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open,
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open :is(a,button,span,b){background-color:#221a30!important;color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
.asp-dashboard-view[data-theme="dark"] .asp-app-header .asp-user-nav.asp-menu-open :is(a,button){border:1px solid #5e4a79!important}
.asp-dashboard-view[data-theme="dark"] .asp-mobile-menu-toggle{background:#241a31!important;color:#fff!important;border-color:#6b4d88!important}
.asp-dashboard-view[data-theme="dark"] .asp-mobile-menu-toggle span{background:#fff!important}
.asp-dashboard-view:not([data-theme="dark"]) .asp-app-header .asp-user-nav.asp-menu-open{background:#fff!important;color:#21182c!important}
.asp-dashboard-view:not([data-theme="dark"]) .asp-app-header .asp-user-nav.asp-menu-open :is(a,button,b,span){color:#21182c!important;-webkit-text-fill-color:#21182c!important}
}

/* 3.51: Staff requests must be readable as full-width stacked cards, not squeezed columns. */
.asp-staff-workspace .asp-staff-points-requests{display:grid;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;gap:16px}
.asp-staff-workspace .asp-staff-points-requests>article{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:13px;min-width:0;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word}
.asp-staff-workspace .asp-staff-points-requests>article>div,
.asp-staff-workspace .asp-staff-points-requests>article>details,
.asp-staff-workspace .asp-staff-points-requests>article>form,
.asp-staff-workspace .asp-staff-points-requests>article>.asp-staff-review-info{flex:0 1 auto;min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.asp-staff-workspace .asp-staff-points-requests .asp-staff-review-info{display:block;overflow-wrap:break-word;word-break:normal;white-space:normal;line-height:1.5}
.asp-staff-workspace .asp-staff-points-requests .asp-staff-review-info strong{display:block;white-space:normal;line-height:1.5}
.asp-staff-workspace .asp-staff-points-requests form{min-width:0;flex-wrap:wrap;max-width:100%}
.asp-staff-workspace .asp-staff-points-requests form input[type=text],
.asp-staff-workspace .asp-staff-points-requests form textarea{max-width:100%;box-sizing:border-box}
.asp-staff-workspace .asp-staff-points-requests .asp-staff-proof-link{width:100%;box-sizing:border-box}
/* Defensive layout rules shared by other Staff Panel tables. */
.asp-staff-workspace .asp-staff-table{min-width:0;max-width:100%}
.asp-staff-workspace .asp-staff-table>article{min-width:0;max-width:100%;box-sizing:border-box}
.asp-staff-workspace .asp-staff-table>article>div{min-width:0}
.asp-staff-workspace .asp-staff-workspace-tab>span:first-child{min-width:0;flex:1}
@media(max-width:680px){.asp-staff-workspace .asp-staff-points-requests>article{padding:14px}.asp-staff-workspace .asp-staff-points-requests form{align-items:stretch}.asp-staff-workspace .asp-staff-points-requests form button{max-width:100%}}

/* 3.76: Do not enlarge small partner artwork beyond its native pixels. */
.asp-root .asp-benefit-card .asp-card-logo > img[data-asp-server-logo],
.asp-coupon-modal .asp-coupon-logos > img[data-asp-server-logo] {
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  image-rendering:auto!important;
}

/* v3.79: uniform Student Card and fixed-code benefit layout */
.asp-standard-code-modal .asp-standard-code-intro {max-width:560px;margin:18px auto 22px;color:#c7bdd4;text-align:center;line-height:1.6;}
.asp-standard-code-modal .asp-coupon-instructions {text-align:justify;text-justify:inter-word;hyphens:auto;overflow-wrap:anywhere;line-height:1.75;}
.asp-standard-code-modal .asp-benefit-details {margin-top:20px;}
@media(max-width:600px){.asp-standard-code-modal .asp-coupon-instructions{text-align:left;}}
/* v3.86 Staff workspaces: responsive forms, category bulk management, dark contrast */
.asp-root.asp-staff-view .asp-person-statistics,
.asp-root.asp-staff-view .asp-staff-panel,
.asp-root.asp-staff-view .asp-staff-category-management{min-width:0;max-width:100%;overflow-wrap:anywhere}
.asp-root .asp-person-statistics .asp-manager-filters,
.asp-root.asp-staff-view .asp-front-manager-filters,
.asp-root.asp-staff-view .asp-front-account-form{
 display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,225px),1fr))!important;
 gap:16px!important;align-items:end!important;width:100%;max-width:100%;padding:20px;
 border-radius:18px;box-sizing:border-box;
}
.asp-root .asp-person-statistics .asp-manager-filters>label,
.asp-root.asp-staff-view .asp-front-manager-filters>label,
.asp-root.asp-staff-view .asp-front-account-form>label{
 display:flex!important;flex-direction:column!important;gap:7px!important;min-width:0!important;
 width:100%!important;max-width:100%!important;font-weight:700;line-height:1.4;
}
.asp-root .asp-person-statistics .asp-manager-filters input,
.asp-root.asp-staff-view .asp-front-manager-filters input:not([type=checkbox]):not([type=radio]),
.asp-root.asp-staff-view .asp-front-manager-filters select,
.asp-root.asp-staff-view .asp-front-account-form input:not([type=checkbox]):not([type=radio]),
.asp-root.asp-staff-view .asp-front-account-form select{
 display:block;min-width:0!important;max-width:100%!important;width:100%!important;height:auto;min-height:46px;
 box-sizing:border-box;padding:10px 12px;letter-spacing:normal;line-height:1.4;
}
.asp-root.asp-staff-view .asp-staff-filter-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))!important;gap:12px;width:100%;grid-column:1/-1}
.asp-root.asp-staff-view .asp-staff-filter-grid>label{min-width:0!important;max-width:100%!important;width:100%!important}
.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-choice{
 display:grid!important;grid-template-columns:25px minmax(0,1fr) auto;align-items:center!important;
 gap:12px!important;min-width:0;min-height:58px;overflow-wrap:normal;word-break:normal;
}
.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-choice>*{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;writing-mode:horizontal-tb}
.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-choice input[type=checkbox]{width:19px;height:19px;min-width:19px;margin:0}
.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-list{display:grid;gap:10px;max-height:420px;overflow:auto;min-width:0}
.asp-root.asp-staff-view .asp-staff-table>article{min-width:0;flex-wrap:wrap}
.asp-root.asp-staff-view .asp-staff-table>article>div{min-width:0;flex:1 1 220px}
.asp-root.asp-staff-view .asp-staff-preview-form{display:flex;align-items:center;width:auto!important;padding:0!important;border:0!important;background:transparent!important}
.asp-root.asp-staff-view .asp-staff-preview-form button{background:#6f34d5;color:#fff;border:0;padding:11px 14px;border-radius:12px;cursor:pointer;font-weight:800}
.asp-root .asp-staff-preview-banner{position:sticky;top:0;z-index:1000001;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:#351c63;color:#fff}
.asp-root .asp-staff-preview-banner button{background:#fff;color:#371769;border:0;padding:9px 14px;border-radius:10px;font-weight:800;cursor:pointer}
.asp-root.asp-staff-view[data-theme=dark] .asp-staff-panel,
.asp-root.asp-staff-view[data-theme=dark] .asp-person-statistics,
.asp-root.asp-staff-view[data-theme=dark] .asp-staff-category-management{background:#181421!important;color:#f8f5ff!important;border-color:#49385d!important}
.asp-root.asp-staff-view[data-theme=dark] :is(.asp-staff-panel,.asp-person-statistics,.asp-staff-category-management) :is(h1,h2,h3,h4,label,legend,summary,p,strong,span,small){color:#f8f5ff!important}
.asp-root.asp-staff-view[data-theme=dark] :is(.asp-staff-panel,.asp-person-statistics,.asp-staff-category-management) :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:#100d17!important;color:#fff!important;border:1px solid #695584!important;box-shadow:none!important;opacity:1}
.asp-root.asp-staff-view[data-theme=dark] :is(.asp-staff-panel,.asp-person-statistics,.asp-staff-category-management) :is(input,textarea)::placeholder{color:#aaa0bc!important;opacity:1}
.asp-root.asp-staff-view[data-theme=dark] .asp-staff-category-choice{background:#231c30;border-color:#59466f!important}
.asp-root.asp-staff-view[data-theme=dark] .asp-staff-table>article{background:#231c30;color:#fff;border-color:#59466f!important}
.asp-root.asp-staff-view[data-theme=dark] .asp-staff-table small{color:#d9cde9!important}
.asp-root.asp-staff-view[data-theme=dark] :is(input[type=checkbox],input[type=radio]){accent-color:#a16aff}
@media(max-width:700px){.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-choice{grid-template-columns:23px minmax(0,1fr)!important}.asp-root.asp-staff-view .asp-staff-category-management .asp-staff-category-choice small{grid-column:2}.asp-root.asp-staff-view .asp-front-manager-filters{padding:14px!important}}
/* The preview banner is intentionally outside the fullscreen app root. */
.asp-staff-preview-banner{position:fixed!important;top:0;left:0;right:0;z-index:10000010!important;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;background:#351c63;color:#fff;box-shadow:0 8px 26px #08040f99}
.asp-staff-preview-banner strong{color:#fff!important}
.asp-staff-preview-banner form{display:inline-flex;align-items:center;gap:8px;margin:0}
.asp-staff-preview-banner button{padding:9px 14px;background:white;color:#351c63;border:0;border-radius:10px;font-weight:800;cursor:pointer}

/* 3.92: full student navigation, separate seminar area and category configuration */
.asp-dashboard-view .asp-app-header{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.asp-dashboard-view .asp-app-header .asp-user-nav{min-width:0;flex-wrap:wrap;justify-content:flex-end}
.asp-dashboard-view .asp-app-header .asp-profile-link{display:inline-flex!important;visibility:visible!important;opacity:1!important}
.asp-dashboard-view .asp-app-header .asp-profile-link b{display:inline!important}
.asp-dashboard-view .asp-app-header .asp-app-brand{min-width:0}
.asp-student-section-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 22px}
.asp-student-section-tabs a{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:1px solid #ddd5e9;border-radius:13px;text-decoration:none;font-weight:800;color:inherit;background:rgba(145,115,181,.08)}
.asp-student-section-tabs a.active{background:#45246f;color:#fff;border-color:#45246f}
.asp-seminar-create-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0 34px}
.asp-seminar-create-form h3,.asp-seminar-create-form button{grid-column:1/-1}
.asp-seminar-create-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;min-width:0}
.asp-seminar-create-form :is(input,textarea,select){width:100%;min-width:0;box-sizing:border-box}
.asp-visible-category-settings{margin:18px 0;padding:18px;border:1px solid #d5cce2;border-radius:16px}
.asp-visible-category-settings fieldset{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;padding:14px;border:1px solid #ded7e6;border-radius:10px}
.asp-visible-category-settings legend{font-weight:800;padding:0 8px}
.asp-visible-category-settings fieldset label{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #ded7e6;border-radius:9px}
.asp-staff-preview-banner{position:sticky!important;top:0!important;box-sizing:border-box;width:100%;z-index:10000010!important}
.asp-generic-student-demo{width:100%;max-width:100%;overflow:visible}
@media(max-width:700px){.asp-seminar-create-form{grid-template-columns:minmax(0,1fr)}.asp-student-section-tabs a{flex:1}.asp-dashboard-view .asp-app-header .asp-user-nav.asp-menu-open{display:flex!important;max-width:calc(100vw - 24px)}}

.asp-staff-workspace .asp-request-kind-filters{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 20px}
.asp-staff-workspace .asp-request-kind-filters a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 16px;border:1px solid #735892;border-radius:12px;background:transparent;color:inherit;text-decoration:none;font-weight:800}
.asp-staff-workspace .asp-request-kind-filters a.active{background:#6d32c5;border-color:#6d32c5;color:#fff}
.asp-dashboard-view:not([data-theme="dark"]).asp-staff-workspace .asp-request-kind-filters a.active{background:#d71920;border-color:#d71920;color:#fff}

/* Keep every mobile account action in one scrollable column. The desktop
   flex-wrap rule otherwise sends Profile and Logout into an off-screen column. */
@media(max-width:700px){
  .asp-dashboard-view .asp-app-header .asp-user-nav.asp-menu-open{
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    box-sizing:border-box;
    max-height:calc(100dvh - 110px - env(safe-area-inset-bottom,0px));
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .asp-dashboard-view .asp-app-header .asp-user-nav.asp-menu-open > *{
    box-sizing:border-box;
    flex:0 0 auto!important;
    min-height:44px!important;
    padding:7px 12px!important;
  }
}

/* 3.94: dependent category filtering and simplified catalog admin */
.asp-subcategory-filters:not([hidden]){display:flex;flex-direction:column;gap:12px;margin:14px 0 24px;padding:16px 20px;border:1px solid rgba(145,99,255,.2);border-radius:20px;background:linear-gradient(110deg,rgba(145,99,255,.09),rgba(145,99,255,.025))}
.asp-subcategory-filters[hidden],.asp-subcategory-pills button[hidden]{display:none!important}
.asp-subcategory-heading{font-size:13px;font-weight:700;opacity:.8}
.asp-subcategory-pills{display:flex;flex-wrap:wrap;gap:9px}
.asp-subcategory-pills button{padding:9px 16px;border-radius:999px;border:1px solid rgba(145,99,255,.22);background:#fff;color:#32254c;cursor:pointer;font-weight:600}
.asp-subcategory-pills button.active{background:#813dec;color:#fff;border-color:#813dec}
.asp-subcategory-field{display:flex;flex-direction:column;gap:7px;min-width:170px}
.asp-subcategories-admin form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:10px 0;padding:12px;border-radius:12px;background:#f9f7fc}
.asp-catalog-utilities{margin:15px 0 24px;border:1px solid #ded6ec;border-radius:12px;padding:12px 15px;background:#fff}
.asp-catalog-utilities>summary{font-weight:700;cursor:pointer;padding:8px}

/* 3.95: a single clear Staff Panel partner management search */
.asp-staff-bulk-details{margin:10px 0 18px;border:1px solid rgba(148,123,180,.22);border-radius:14px;padding:10px 14px;background:rgba(134,100,180,.06)}
.asp-staff-bulk-details>summary{cursor:pointer;font-weight:650;list-style-position:inside;padding:7px 2px}
.asp-staff-bulk-details[open] .asp-partner-bulk-actions{margin-top:14px}

/* 3.98: consistent staff controls across content, seminars, notices and accounts */
.asp-staff-workspace .asp-staff-panel button:not(.asp-radio-play):not([disabled]),
.asp-staff-workspace .asp-staff-panel input[type="submit"],
.asp-staff-workspace .asp-staff-panel a.asp-action-button {
  appearance:none;border:1px solid rgba(133,83,223,.62);border-radius:12px;
  background:linear-gradient(135deg,#8248dc,#6026b3);color:#fff;
  padding:11px 17px;min-height:42px;font-size:14px;font-weight:700;line-height:1.25;
  box-shadow:0 5px 15px rgba(90,41,168,.18);cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.asp-staff-workspace .asp-staff-panel button:not([disabled]):hover,
.asp-staff-workspace .asp-staff-panel input[type="submit"]:hover{
 transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 8px 20px rgba(90,41,168,.26);
}
.asp-staff-workspace .asp-staff-panel button:disabled{opacity:.55;cursor:not-allowed}
.asp-staff-workspace .asp-staff-panel input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.asp-staff-workspace .asp-staff-panel select,.asp-staff-workspace .asp-staff-panel textarea{
 border:1px solid #d7c9ec;border-radius:11px;min-height:42px;padding:10px 12px;
 background:#fff;color:#252034;max-width:100%;box-sizing:border-box;
}
.asp-staff-workspace .asp-staff-panel input:focus-visible,.asp-staff-workspace .asp-staff-panel select:focus-visible,
.asp-staff-workspace .asp-staff-panel button:focus-visible{outline:3px solid #b59af5;outline-offset:2px}
.asp-staff-workspace .asp-staff-panel form{row-gap:12px}
@media (prefers-reduced-motion:reduce){.asp-staff-workspace .asp-staff-panel button{transition:none!important}}

/* v4.00.2: student preview uses the SAME scroll surface as the real dashboard. */
.asp-root.asp-generic-student-demo {position:fixed;inset:0;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain;scroll-behavior:smooth;max-height:100dvh}
.asp-root.asp-generic-student-demo > .asp-staff-preview-banner{position:relative!important;top:auto!important;left:auto!important;right:auto!important;z-index:10000010!important;flex-shrink:0;width:100%;max-width:100%;border-radius:0;box-sizing:border-box}
.asp-root.asp-dashboard-view .asp-filter-kind{display:inline-flex;align-items:center;margin-inline:5px 4px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;background:rgba(139,69,224,.15);color:inherit;white-space:nowrap}
.asp-root.asp-dashboard-view .asp-filters button[data-kind="seminar"]{border-color:rgba(130,62,212,.4)}
.asp-root.asp-dashboard-view .asp-filters button[data-kind="seminar"].active{background:linear-gradient(120deg,#7138c9,#54229d);border-color:#ae80ff;color:#fff}
.asp-root.asp-dashboard-view .asp-filters button.active .asp-filter-kind{background:rgba(255,255,255,.2)}
.asp-preview-toast{position:sticky;bottom:18px;z-index:10000012;display:block;max-width:min(650px,calc(100% - 24px));margin:0 auto;padding:14px 20px;background:#281a41;color:#fff;border:1px solid #b78cff;border-radius:14px;box-shadow:0 14px 45px rgba(0,0,0,.3);font-weight:700;text-align:center}
.asp-preview-toast[hidden]{display:none!important}
@media(max-width:720px){.asp-root.asp-generic-student-demo>.asp-staff-preview-banner{padding:10px 14px;font-size:12px}.asp-root.asp-generic-student-demo>.asp-staff-preview-banner a{padding:8px 10px}}

/* v4.01: four independent destinations on the Student Pass homepage. */
.asp-dashboard-view .asp-home-sections{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0 26px}
.asp-dashboard-view .asp-home-section{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-width:0;min-height:110px;padding:20px 21px;border:1px solid #e7ddeb;border-radius:22px;background:linear-gradient(145deg,#fff,#f9f5fe);color:#21152f;text-decoration:none;box-shadow:0 12px 32px rgba(37,18,71,.06);transition:transform .2s,box-shadow .2s,border-color .2s}
.asp-dashboard-view .asp-home-section strong{font-weight:900;font-size:18px;line-height:1.25}
.asp-dashboard-view .asp-home-section small{font-size:12px;line-height:1.4;color:#64576d;font-weight:650}
.asp-dashboard-view .asp-home-section:is(:hover,:focus-visible){transform:translateY(-3px);box-shadow:0 16px 38px rgba(60,28,119,.13)}
.asp-dashboard-view .asp-home-section.is-selected{background:linear-gradient(130deg,#351957,#7734d2);border-color:#9d69e8;color:#fff;box-shadow:0 14px 36px rgba(72,25,130,.28)}
.asp-dashboard-view .asp-home-section.is-selected small{color:#ebdbff}
.asp-dashboard-view .asp-section-heading{margin:8px 0 19px}.asp-dashboard-view .asp-section-heading h2{margin:0 0 3px;font-size:27px;line-height:1.25;color:#251832}.asp-dashboard-view .asp-section-heading p{margin:0;color:#7a7181;font-size:14px}
.asp-dashboard-view[data-theme="dark"] .asp-home-section{background:linear-gradient(135deg,#20182c,#1b1424);border-color:#40304f;color:#f6efff;box-shadow:0 10px 25px rgba(0,0,0,.18)}
.asp-dashboard-view[data-theme="dark"] .asp-home-section small{color:#bbb0c9}
.asp-dashboard-view[data-theme="dark"] .asp-home-section.is-selected{background:linear-gradient(125deg,#35125a,#7939d9);border-color:#ab83e4;color:#fff}
.asp-dashboard-view[data-theme="dark"] .asp-home-section.is-selected small{color:#e5d4ff}
.asp-dashboard-view[data-theme="dark"] .asp-section-heading h2{color:#f6eefe}
.asp-dashboard-view[data-theme="dark"] .asp-section-heading p{color:#b8a9c9}
.asp-dashboard-view .asp-special-public-card{cursor:default}.asp-dashboard-view .asp-special-public-card .asp-card-logo img{width:100%;height:100%;object-fit:contain}
.asp-dashboard-view .asp-special-tag{display:inline-block;align-self:flex-start;padding:5px 10px;border-radius:999px;background:rgba(128,65,218,.11);color:#712bb8;font-weight:850;font-size:12px;margin:4px 0 8px}
.asp-dashboard-view .asp-special-place{font-size:12px;margin-top:auto}
.asp-dashboard-view .asp-special-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 15px;border-radius:13px;background:linear-gradient(130deg,#7432c8,#4d1c96);color:#fff!important;text-align:center;text-decoration:none;font-weight:900;font-size:13px;line-height:1.4;width:100%}
.asp-dashboard-view .asp-special-link:hover{filter:brightness(1.12)}
.asp-dashboard-view .asp-special-no-url{font-size:12px;color:#756981;line-height:1.4}
.asp-dashboard-view[data-theme="dark"] .asp-special-tag{background:#352146;color:#d4b5ff}
.asp-dashboard-view[data-theme="dark"] .asp-special-no-url{color:#b8a4c7}
/* WordPress + Staff special editors */
.asp-special-management{max-width:100%;min-width:0}
.asp-special-new,.asp-special-existing{border:1px solid #dfd8e8;border-radius:16px;background:#fff;margin:14px 0;padding:0 18px;overflow:hidden}
.asp-special-new{border-color:#b995e3;background:#fcfaff}
.asp-special-new>summary,.asp-special-existing>summary{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:18px 0;font-size:16px;font-weight:850;cursor:pointer;color:#281d36}
.asp-special-new>summary{color:#62289f}
.asp-special-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px;border-top:1px solid #ebe4f1;padding:20px 0 24px}
.asp-special-entry-form label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px;font-weight:800;color:#282033}
.asp-special-entry-form label:has(textarea){grid-column:1/-1}
.asp-special-entry-form input:not([type="file"]),.asp-special-entry-form select,.asp-special-entry-form textarea{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid #cfc5da;border-radius:12px;background:#fff;color:#21182a;font-size:14px}
.asp-special-entry-form textarea{min-height:120px;resize:vertical}
.asp-special-entry-form input:focus-visible,.asp-special-entry-form select:focus-visible,.asp-special-entry-form textarea:focus-visible{outline:2px solid #8841dc;outline-offset:2px}
.asp-special-entry-form .asp-special-primary{grid-column:1/-1;background:linear-gradient(125deg,#853ddd,#5629b8);color:#fff;border:0;border-radius:13px;padding:13px 19px;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 10px 24px rgba(101,36,190,.2)}
.asp-special-entry-form .asp-special-thumbnail{max-width:150px;border-radius:10px}
.asp-special-trash-form{padding:0 0 18px}.asp-special-delete{border:1px solid #f0bdc2;background:#fff4f6;color:#b91b28;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:800;cursor:pointer}
.asp-special-search{display:flex;gap:10px;margin:18px 0}.asp-special-search input{min-width:min(340px,90%)}
.asp-dashboard-view[data-theme="dark"] .asp-special-new,.asp-dashboard-view[data-theme="dark"] .asp-special-existing{background:#1d162a;border-color:#4e3b67}
.asp-dashboard-view[data-theme="dark"] .asp-special-new>summary,.asp-dashboard-view[data-theme="dark"] .asp-special-existing>summary,.asp-dashboard-view[data-theme="dark"] .asp-special-entry-form label{color:#f3ecff}
.asp-dashboard-view[data-theme="dark"] .asp-special-entry-form :is(input,select,textarea){background:#160f21;color:#fff;border-color:#5d4874}
.asp-dashboard-view[data-theme="dark"] .asp-special-delete{background:#3d1923;color:#ffd9de;border-color:#703443}
@media(max-width:950px){.asp-dashboard-view .asp-home-sections{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.asp-dashboard-view .asp-home-sections{gap:9px}.asp-dashboard-view .asp-home-section{min-height:116px;padding:12px;border-radius:16px}.asp-dashboard-view .asp-home-section strong{font-size:15px}.asp-dashboard-view .asp-home-section small{font-size:11px}.asp-special-entry-form{grid-template-columns:minmax(0,1fr)}}
.asp-dashboard-view .asp-career-filters{display:flex;gap:10px;flex-wrap:wrap;margin:2px 0 22px}
.asp-dashboard-view .asp-career-filters button{padding:12px 17px;border-radius:999px;border:1px solid #cbb4e4;background:#f6efff;color:#533479;font-size:14px;font-weight:850;cursor:pointer}
.asp-dashboard-view .asp-career-filters button.active{background:#7131bd;color:#fff;border-color:#7131bd}
.asp-dashboard-view[data-theme="dark"] .asp-career-filters button{color:#e6d0ff;background:#241536;border-color:#5c4082}
.asp-dashboard-view[data-theme="dark"] .asp-career-filters button.active{background:#7231c5;color:#fff;border-color:#9d6edf}
.asp-dashboard-view .asp-seminar-details{width:100%}.asp-dashboard-view .asp-seminar-details summary{list-style:none;cursor:pointer}.asp-dashboard-view .asp-seminar-details summary::-webkit-details-marker{display:none}.asp-dashboard-view .asp-seminar-details p{font-size:13px;margin:10px 0 5px}.asp-dashboard-view .asp-seminar-details small{font-size:12px;color:#6e6079}
