/* Frontend UI revision — shared by all existing pages. */
/* Custom dropdowns: native controls remain form-bound, never user-visible. */
.custom-select{position:relative;min-width:0;width:100%;text-align:left}
.custom-select-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;clip-path:inset(50%)!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:46px;width:100%;padding:11px 14px;background:#fff;color:var(--ink);border:1px solid #cfd8e3;border-radius:10px;font-size:13px;line-height:1.6;text-align:left;transition:border-color .18s,box-shadow .18s,background .18s}
.custom-select-trigger:hover{border-color:#88aaca;background:#fbfdff}
.custom-select-trigger:focus-visible,.custom-select.is-open .custom-select-trigger{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px #1769aa16}
.custom-select-trigger:disabled{background:#f4f6f9;cursor:not-allowed;color:#7d8997}
.custom-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.custom-select-arrow{width:8px;height:8px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:translateY(-2px) rotate(45deg);flex-shrink:0;transition:transform .18s;color:var(--blue);margin:0 3px 0 5px}
.is-open .custom-select-arrow{transform:translateY(2px) rotate(225deg)}
.custom-select-popup{position:fixed;z-index:300;background:#fff;border:1px solid #dce5ef;border-radius:12px;padding:6px;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 38px #123b6d24,0 2px 6px #123b6d0a;scrollbar-width:thin;scrollbar-color:#bdcede transparent}
.custom-select-option{position:relative;display:flex;align-items:center;min-height:42px;border-radius:7px;padding:10px 36px 10px 12px;font-size:13px;line-height:1.5;cursor:pointer;color:#42536a;overflow-wrap:anywhere}
.custom-select-option.is-active{background:#f0f6fc;color:var(--navy)}
.custom-select-option[aria-selected="true"]{background:#eaf3fc;color:var(--blue);font-weight:650}
.custom-select-option[aria-selected="true"]:after{content:'✓';position:absolute;right:12px;font-size:15px;font-weight:700}
.custom-select-option[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.filterbar>.custom-select{width:auto;min-width:145px;flex:0 1 190px}
.filterbar>.custom-select .custom-select-trigger{font-size:12px}
/* Details/navigation dropdowns never use browser marker styling. */
.nav-drop>summary{list-style:none;user-select:none;-webkit-tap-highlight-color:transparent}
.nav-drop>summary::-webkit-details-marker{display:none}
.nav-drop>summary::marker{content:''}
.nav-drop>summary:after{display:inline-block;width:7px;height:7px;content:'';border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:9px;transition:transform .18s}
.nav-drop[open]>summary:after{transform:translateY(2px) rotate(225deg)}
.drop-links{border-radius:12px;padding:7px;box-shadow:0 14px 38px #123b6d1a}
.drop-links a{min-height:42px;display:flex;align-items:center;padding:10px 13px;border-radius:7px;transition:background .15s}
.drop-links a:hover,.drop-links a:focus-visible{background:#edf4fc;color:var(--blue)}
/* Admin account menu is a popover, NOT the stacked public mobile navigation. */
.admin-topbar{position:relative;z-index:60;min-width:0}
.admin-topbar .right{min-width:0}
.admin-topbar .nav-drop{flex-shrink:0}
.admin-topbar .nav-drop>summary.profile{padding:7px 9px;border:1px solid transparent;border-radius:12px;gap:9px;min-height:44px}
.admin-topbar .nav-drop[open]>summary.profile{background:#f0f5fc;border-color:#dce6f1}
.admin-topbar .nav-drop .drop-links{position:absolute;top:calc(100% + 10px);left:auto;right:0;width:224px;min-width:0;max-width:calc(100vw - 32px);margin:0;background:#fff;border:1px solid var(--line);box-shadow:0 16px 44px #123b6d26;z-index:65;font-size:12px}
.admin-topbar .profile strong{letter-spacing:0}
.admin-topbar .profile small{line-height:1.5}
/* Drawer: fixed brand/close header and generous, non-shrinking touch rows. */
.sidebar-backdrop{position:fixed;inset:0;z-index:69;background:rgb(15 34 58 / .45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.admin-sidebar>*{flex-shrink:0}
@media(max-width:900px){
  body.drawer-open{overflow:hidden;overscroll-behavior:none}
  .admin-sidebar,.admin-sidebar.collapsed{width:min(320px,calc(100vw - 52px));max-width:100%;padding:20px 14px max(20px,env(safe-area-inset-bottom));height:100vh;height:100dvh;bottom:auto;border-right:1px solid #e1e8f1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cad7e6 transparent;visibility:hidden;transform:translate3d(-100%,0,0);transition:transform .24s cubic-bezier(.2,.7,.2,1),visibility .24s;box-shadow:none}
  .admin-sidebar.mobile-open{visibility:visible;transform:translate3d(0,0,0);box-shadow:16px 0 48px #0d254e26}
  .admin-sidebar .brand,.admin-sidebar.collapsed .brand{min-height:76px;align-items:center;gap:10px;padding:0 43px 20px 6px;margin:0 0 16px}
  .admin-sidebar .brand img{width:37px;height:44px;flex-shrink:0;object-fit:contain}
  .admin-sidebar .brand strong,.admin-sidebar.collapsed .brand strong{font-size:13px;line-height:1.4;white-space:nowrap;display:block}
  .admin-sidebar .brand small,.admin-sidebar.collapsed .brand small{font-size:7px;line-height:1.7;letter-spacing:.07em;display:block;margin-top:3px}
  .admin-sidebar .sidebar-close{position:absolute;right:14px;top:23px;width:36px;height:36px;min-width:36px;min-height:36px;padding:8px;border-radius:10px;background:#f5f8fc;border-color:#e4eaf2;margin:0;align-self:auto;color:#47617d}
  .admin-sidebar .sidebar-close .icon{width:18px;height:18px}
  .admin-sidebar .side-link,.admin-sidebar.collapsed .side-link{min-height:46px;padding:11px 13px;gap:12px;border-radius:9px;font-size:12px;margin:2px 0;justify-content:flex-start}
  .admin-sidebar .side-link .icon{width:19px;height:19px}
  .admin-sidebar .side-label,.admin-sidebar.collapsed .side-label{display:block;white-space:normal}
  .admin-sidebar .side-link.active{background:#eaf2fc;color:#1b629c}
  .admin-sidebar .nav-group,.admin-sidebar.collapsed .nav-group{display:block;font-size:9px;letter-spacing:.13em;margin:21px 13px 9px}
  .admin-sidebar .count,.admin-sidebar.collapsed .count{display:inline-block}
  .admin-sidebar .sidebar-bottom,.admin-sidebar.collapsed .sidebar-bottom{display:block;padding-top:24px}
  .admin-shell,.admin-sidebar.collapsed+.admin-shell{margin-left:0}
}
@media(max-width:650px){
  .admin-topbar{gap:10px;padding:0 16px}
  .admin-topbar .right{gap:7px}
  .admin-topbar .right>.small.link{font-size:0;display:flex;align-items:center;justify-content:center;width:38px;height:42px}
  .admin-topbar .right>.small.link .icon{font-size:initial;width:19px;height:19px}
  .admin-topbar .right>.icon-btn{min-width:40px;min-height:40px;padding:9px;border-radius:10px}
  .admin-topbar .profile .avatar{width:32px;height:32px}
  .admin-topbar .nav-drop>summary.profile{padding:5px 6px;gap:4px}
  .admin-topbar .nav-drop .drop-links{top:calc(100% + 9px);right:0}
  .filterbar>.custom-select{flex:1;min-width:120px}
}
/* Three continuous, equal-length groups: -50% is exactly one full group.
   Fixed logo boxes prevent image decoding from changing the animation length. */
.partners-section{border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,#f9fbfe)}
.partner-carousel{margin-top:28px;min-width:0}
.partner-carousel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}
.partner-carousel-toolbar>p{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:650}
.partner-pause{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dbe5f0;background:#fff;border-radius:24px;min-height:40px;padding:8px 15px;color:var(--blue);font-size:11px;white-space:nowrap}
.partner-pause:hover{background:#edf4fc;border-color:#a8c6e5}
.partner-rows{display:grid;gap:15px;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.partner-row{width:100%;overflow:hidden;min-width:0}
.partner-track{display:flex;width:max-content;animation:partner-marquee 65s linear infinite;will-change:transform;backface-visibility:hidden;transform:translate3d(0,0,0)}
.partner-group{list-style:none;margin:0;padding:0 16px 0 0;display:flex;align-items:center;gap:16px;flex-shrink:0}
.partner-logo{flex:0 0 172px;width:172px;height:100px;background:white;border:1px solid #e2e9f1;border-radius:13px;display:flex;align-items:center;justify-content:center;padding:20px 16px;overflow:hidden}
.partner-logo img{display:block;width:100%;height:100%;object-fit:contain;max-width:140px;max-height:60px;mix-blend-mode:multiply}
.partner-row:nth-child(2) .partner-track{animation-direction:reverse;animation-duration:73s}
.partner-row:nth-child(3) .partner-track{animation-duration:69s}
.partner-carousel.is-paused .partner-track,.partner-carousel.is-offscreen .partner-track,.partner-carousel.is-background .partner-track,.partner-rows:focus-within .partner-track{animation-play-state:paused}
.partner-note{font-size:10px;color:var(--muted);margin-top:18px;text-align:center}
@media(hover:hover){.partner-rows:hover .partner-track{animation-play-state:paused}}
@keyframes partner-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(max-width:650px){
  .partner-carousel-toolbar{margin-bottom:17px;gap:10px}
  .partner-carousel-toolbar>p{font-size:9px;letter-spacing:.07em}
  .partner-pause{font-size:10px;padding:7px 12px}
  .partner-rows{gap:11px}
  .partner-group{gap:12px;padding-right:12px}
  .partner-logo{flex-basis:132px;width:132px;height:80px;padding:16px 13px;border-radius:10px}
  .partner-note{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .admin-sidebar,.custom-select-trigger,.custom-select-arrow,.nav-drop>summary:after{transition:none!important}
  .partner-track{animation:none!important;transform:none!important;will-change:auto}
  .partner-row{overflow-x:auto;scrollbar-width:thin}
  .partner-group[aria-hidden="true"]{display:none}
  .partner-rows{mask-image:none;-webkit-mask-image:none}
  .partner-pause{display:none}
}
