/* 五育宝 Web 4.2 - visual system */
:root{
  --wy-primary:#4361ee;
  --wy-primary-2:#5f7cff;
  --wy-primary-dark:#3146c9;
  --wy-cyan:#22d3ee;
  --wy-success:#16a34a;
  --wy-warning:#f59e0b;
  --wy-danger:#ef4444;
  --wy-ink:#172033;
  --wy-muted:#64748b;
  --wy-border:rgba(148,163,184,.22);
  --wy-border-strong:rgba(255,255,255,.5);
  --wy-panel:rgba(255,255,255,.80);
  --wy-panel-strong:rgba(255,255,255,.92);
  --wy-panel-soft:rgba(248,250,252,.68);
  --wy-sidebar:rgba(13,24,49,.82);
  --wy-shadow-sm:0 8px 24px rgba(20,35,70,.08);
  --wy-shadow:0 18px 50px rgba(20,35,70,.14);
  --wy-shadow-lg:0 28px 80px rgba(15,23,42,.20);
  --wy-radius-sm:12px;
  --wy-radius:18px;
  --wy-radius-lg:26px;
  --wy-sidebar-width:264px;
  --wy-sidebar-collapsed:86px;
  --wy-topbar-height:76px;
  --wy-transition:.2s ease;
}

*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body.app-body{
  min-height:100vh;
  margin:0;
  color:var(--wy-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  background:#dfe8f8!important;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--wy-primary);text-decoration:none}
a:hover{color:var(--wy-primary-dark)}
button,input,select,textarea{font:inherit}
::selection{background:rgba(67,97,238,.2)}

.app-background{position:fixed;inset:0;z-index:-2;overflow:hidden;background:#dfe8f8}
.app-background-image{position:absolute;inset:-18px;background:url("/static/bg.webp?v=420") center/cover no-repeat;filter:saturate(.88) contrast(.96);transform:scale(1.03)}
.app-background-gradient{position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,30,60,.44),rgba(31,68,130,.12) 45%,rgba(255,255,255,.25)),linear-gradient(to bottom,rgba(235,243,255,.08),rgba(222,235,252,.45))}
.app-background-orb{position:absolute;border-radius:50%;filter:blur(18px);opacity:.32;animation:wy-float 12s ease-in-out infinite}
.app-background-orb-a{width:420px;height:420px;left:-150px;top:-120px;background:rgba(67,97,238,.55)}
.app-background-orb-b{width:360px;height:360px;right:-120px;bottom:-100px;background:rgba(34,211,238,.42);animation-delay:-4s}
@keyframes wy-float{50%{transform:translate3d(20px,-18px,0) scale(1.04)}}

/* Shared shells */
.app-layout{min-height:100vh;display:grid;grid-template-columns:var(--wy-sidebar-width) minmax(0,1fr);transition:grid-template-columns var(--wy-transition)}
.app-main{min-width:0;min-height:100vh;display:flex;flex-direction:column;position:relative}
.app-content{flex:1 1 auto;padding:28px 30px 20px;min-width:0}
.page-container{width:min(1500px,100%);margin:0 auto}
.app-footer{display:flex;justify-content:center;gap:8px;align-items:center;color:rgba(30,41,59,.7);font-size:.78rem;padding:8px 24px 22px}
.footer-separator{opacity:.5}

/* Sidebar */
.app-sidebar{position:sticky;top:0;height:100vh;z-index:1035;display:flex;flex-direction:column;padding:18px 14px;background:linear-gradient(180deg,rgba(14,27,54,.91),rgba(13,24,49,.82));border-right:1px solid rgba(255,255,255,.12);box-shadow:18px 0 50px rgba(5,15,35,.12);backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%);overflow:hidden}
.sidebar-brand-row{height:58px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 5px 10px}
.sidebar-brand{min-width:0;display:flex;align-items:center;gap:11px;color:#fff!important}
.brand-mark{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;color:#fff;font-size:1.18rem;font-weight:800;background:linear-gradient(135deg,var(--wy-primary-2),var(--wy-cyan));box-shadow:0 10px 28px rgba(67,97,238,.34),inset 0 1px rgba(255,255,255,.35)}
.brand-copy,.guest-brand>span:last-child{display:flex;flex-direction:column;min-width:0}
.brand-copy strong,.guest-brand strong{font-size:1.04rem;letter-spacing:.08em;white-space:nowrap}
.brand-copy small,.guest-brand small{font-size:.61rem;letter-spacing:.16em;color:rgba(255,255,255,.54);white-space:nowrap;margin-top:1px}
.sidebar-scroll{flex:1 1 auto;overflow:auto;padding:12px 2px;scrollbar-width:none}.sidebar-scroll::-webkit-scrollbar{display:none}
.nav-section-label{padding:12px 12px 7px;color:rgba(219,234,254,.42);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.sidebar-nav{display:flex;flex-direction:column;gap:4px}
.sidebar-link{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;padding:9px 12px;border-radius:14px;color:rgba(226,232,240,.77);font-size:.92rem;font-weight:600;transition:background var(--wy-transition),color var(--wy-transition),transform var(--wy-transition)}
.sidebar-link:hover{color:#fff;background:rgba(255,255,255,.08);transform:translateX(2px)}
.sidebar-link.active{color:#fff;background:linear-gradient(135deg,rgba(95,124,255,.82),rgba(67,97,238,.58));box-shadow:0 10px 26px rgba(33,58,165,.26),inset 0 1px rgba(255,255,255,.17)}
.sidebar-link.active:before{content:"";position:absolute;left:-2px;width:3px;height:20px;border-radius:4px;background:#8ff4ff;box-shadow:0 0 12px #8ff4ff}
.nav-icon{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 23px}
.nav-icon svg,.sidebar-logout svg,.account-chevron,.topbar-command svg,.mobile-menu-button svg,.icon-button svg,.mobile-bottom-nav svg,.quick-nav-search-wrap svg,.back-to-top svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-account{flex:0 0 auto;border-top:1px solid rgba(255,255,255,.09);padding-top:12px}
.account-card{display:flex;align-items:center;gap:10px;padding:10px;border-radius:15px;color:#fff!important;background:rgba(255,255,255,.06);transition:background var(--wy-transition)}
.account-card:hover{background:rgba(255,255,255,.10)}
.account-avatar,.topbar-avatar{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;background:linear-gradient(135deg,#6882ff,#32d5ee);box-shadow:0 8px 22px rgba(67,97,238,.28)}
.account-avatar{width:38px;height:38px;border-radius:12px;flex:0 0 38px}
.account-meta{min-width:0;display:flex;flex:1;flex-direction:column}.account-meta strong{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-meta small{font-size:.69rem;color:rgba(226,232,240,.62);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.balance-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:5px;box-shadow:0 0 8px rgba(74,222,128,.8)}
.account-chevron{width:16px;height:16px;color:rgba(255,255,255,.42)}
.sidebar-logout{display:flex;align-items:center;gap:12px;margin-top:6px;padding:9px 12px;border-radius:12px;color:rgba(254,202,202,.75);font-size:.83rem;font-weight:600}.sidebar-logout:hover{color:#fecaca;background:rgba(239,68,68,.1)}.sidebar-logout svg{width:19px;height:19px}
.sidebar-collapse-button{color:rgba(255,255,255,.7)}
body.sidebar-collapsed .app-layout{grid-template-columns:var(--wy-sidebar-collapsed) minmax(0,1fr)}
body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-section-label,body.sidebar-collapsed .account-meta,body.sidebar-collapsed .account-chevron,body.sidebar-collapsed .sidebar-logout span{display:none}
body.sidebar-collapsed .sidebar-brand-row{justify-content:center;position:relative}body.sidebar-collapsed .sidebar-collapse-button{position:absolute;right:-2px;top:12px;transform:rotate(180deg);background:rgba(255,255,255,.08)}
body.sidebar-collapsed .sidebar-link{justify-content:center;padding-inline:0}body.sidebar-collapsed .sidebar-link.active:before{left:-9px}body.sidebar-collapsed .account-card{justify-content:center;padding:8px}body.sidebar-collapsed .sidebar-logout{justify-content:center;padding:9px 0}
.sidebar-scrim{display:none}

/* Top bar */
.app-topbar{height:var(--wy-topbar-height);position:sticky;top:0;z-index:1020;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 30px;background:rgba(243,248,255,.74);border-bottom:1px solid rgba(255,255,255,.5);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);box-shadow:0 8px 30px rgba(30,55,100,.06)}
.topbar-left,.topbar-actions{display:flex;align-items:center}.topbar-left{gap:13px;min-width:0}.topbar-actions{gap:10px}
.topbar-title-wrap{min-width:0}.topbar-title{font-weight:800;font-size:1.05rem;color:#15203a;line-height:1.25}.topbar-subtitle{font-size:.72rem;color:#758197;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon-button,.mobile-menu-button{border:0;background:transparent;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#475569;transition:background var(--wy-transition),color var(--wy-transition)}.icon-button:hover,.mobile-menu-button:hover{background:rgba(67,97,238,.08);color:var(--wy-primary)}
.mobile-menu-button{display:none}
.network-indicator{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;color:#47705a;background:rgba(34,197,94,.08);font-size:.69rem}.network-indicator span{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.1)}.network-indicator.offline{color:#991b1b;background:rgba(239,68,68,.08)}.network-indicator.offline span{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.1)}
.topbar-command{height:38px;border:1px solid rgba(148,163,184,.18);background:rgba(255,255,255,.55);border-radius:12px;padding:0 11px;display:inline-flex;align-items:center;gap:8px;color:#526079;font-size:.76rem;transition:.18s}.topbar-command:hover{background:#fff;border-color:rgba(67,97,238,.2);color:var(--wy-primary);box-shadow:var(--wy-shadow-sm)}.topbar-command svg{width:17px;height:17px}.topbar-command kbd{font-size:.6rem;font-weight:600;color:#758197;background:rgba(148,163,184,.12);border:0;border-radius:5px;padding:2px 5px}
.balance-pill{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px;border-radius:12px;background:linear-gradient(135deg,rgba(67,97,238,.11),rgba(34,211,238,.09));border:1px solid rgba(67,97,238,.12);color:#43506b!important}.balance-pill span{font-size:.69rem}.balance-pill strong{font-size:.88rem;color:var(--wy-primary)}
.topbar-avatar{border:0;width:38px;height:38px;border-radius:12px;font-size:.88rem}.topbar-avatar:hover{transform:translateY(-1px)}
.app-dropdown{border:1px solid var(--wy-border);border-radius:14px;padding:7px;box-shadow:var(--wy-shadow);background:rgba(255,255,255,.96);backdrop-filter:blur(18px)}.app-dropdown .dropdown-item{border-radius:9px;padding:8px 10px;font-size:.86rem}

/* Guest shell */
.guest-header{position:fixed;left:0;right:0;top:0;z-index:1020;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,72px);background:rgba(15,28,52,.35);border-bottom:1px solid rgba(255,255,255,.14);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.guest-brand{display:flex;align-items:center;gap:10px;color:#fff!important}.guest-brand .brand-mark{width:40px;height:40px;flex-basis:40px;border-radius:13px}.guest-brand small{color:rgba(255,255,255,.6);letter-spacing:.06em}.guest-actions{display:flex;align-items:center;gap:8px}
.guest-content{min-height:100vh;padding-top:72px;display:flex;align-items:stretch}.guest-page-container{width:100%;max-width:none;padding:0}

/* Common design elements */
.card,.site-glass,.glass06{border:1px solid var(--wy-border-strong)!important;border-radius:var(--wy-radius)!important;background:var(--wy-panel)!important;box-shadow:var(--wy-shadow-sm)!important;backdrop-filter:blur(18px) saturate(125%)!important;-webkit-backdrop-filter:blur(18px) saturate(125%)!important}
.glass06-soft,.soft-panel{border:1px solid rgba(255,255,255,.46)!important;border-radius:15px!important;background:rgba(255,255,255,.62)!important;box-shadow:inset 0 1px rgba(255,255,255,.5)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important}
.card-body{position:relative}.card-title,h1,h2,h3,h4,h5,h6{color:#16213b;letter-spacing:-.015em}
hr{border-color:rgba(100,116,139,.18)}
.text-muted{color:#718096!important}
.eyebrow{color:var(--wy-primary);font-size:.67rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:0 0 22px}.page-heading h1{font-size:clamp(1.45rem,2vw,2rem);font-weight:850;margin:0}.page-heading p{color:var(--wy-muted);margin:6px 0 0;font-size:.91rem}.page-heading-actions{display:flex;gap:9px;flex-wrap:wrap}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}.section-heading h2,.section-heading h3,.section-heading h4{margin:0;font-weight:800}.section-heading p{margin:4px 0 0;color:var(--wy-muted);font-size:.84rem}

.form-label{color:#344054;font-size:.82rem;font-weight:700;margin-bottom:7px}
.form-control,.form-select{min-height:44px;border:1px solid rgba(148,163,184,.22);border-radius:12px;background:rgba(255,255,255,.72);color:#18233c;padding:.67rem .82rem;box-shadow:inset 0 1px rgba(255,255,255,.4);transition:border-color .18s,box-shadow .18s,background .18s}
.form-control::placeholder{color:#9aa7ba}.form-control:hover,.form-select:hover{border-color:rgba(67,97,238,.28);background:rgba(255,255,255,.86)}
.form-control:focus,.form-select:focus{border-color:rgba(67,97,238,.52);background:#fff;box-shadow:0 0 0 4px rgba(67,97,238,.10)}
.form-control:disabled,.form-select:disabled{background:rgba(226,232,240,.65);color:#64748b}
.form-check-input{border-color:#aeb8c8}.form-check-input:checked{background-color:var(--wy-primary);border-color:var(--wy-primary)}.form-text{color:#7b8799}
.input-group .form-control{min-height:44px}.input-group .btn{border-radius:0 12px 12px 0}

.btn{border-radius:11px;font-weight:700;font-size:.86rem;min-height:40px;padding:.55rem .9rem;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}
.btn-primary{border-color:transparent;background:linear-gradient(135deg,var(--wy-primary-2),var(--wy-primary));box-shadow:0 9px 20px rgba(67,97,238,.22)}.btn-primary:hover,.btn-primary:focus{border-color:transparent;background:linear-gradient(135deg,#6d86ff,#3955dc);box-shadow:0 12px 26px rgba(67,97,238,.30)}
.btn-success{border-color:transparent;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 9px 20px rgba(22,163,74,.18)}
.btn-secondary{border-color:transparent;background:#64748b}.btn-light{background:rgba(255,255,255,.78);border-color:rgba(148,163,184,.16);color:#39465e}.btn-outline-primary{border-color:rgba(67,97,238,.35);color:var(--wy-primary);background:rgba(255,255,255,.42)}.btn-outline-primary:hover{background:rgba(67,97,238,.08);border-color:rgba(67,97,238,.45);color:var(--wy-primary-dark)}.btn-outline-secondary{border-color:rgba(100,116,139,.3);color:#566176;background:rgba(255,255,255,.42)}.btn-outline-dark{border-color:rgba(51,65,85,.28);color:#334155;background:rgba(255,255,255,.5)}
.btn-sm{min-height:34px;border-radius:9px;font-size:.78rem}.btn-lg{min-height:48px;border-radius:13px;font-size:.94rem}
.badge{border-radius:999px;padding:.4em .66em;font-weight:700}

.table{--bs-table-bg:transparent;--bs-table-striped-bg:rgba(241,245,249,.42);--bs-table-hover-bg:rgba(67,97,238,.045);color:#27334c}.table thead th{font-size:.75rem;letter-spacing:.02em;color:#64748b;font-weight:800;border-bottom-color:rgba(100,116,139,.15);background:rgba(248,250,252,.66)}.table td{border-color:rgba(100,116,139,.1);font-size:.84rem}.table-responsive{border-radius:14px;border:1px solid rgba(148,163,184,.12);background:rgba(255,255,255,.45)}
.dropdown-menu{border:1px solid var(--wy-border);border-radius:13px;padding:6px;box-shadow:var(--wy-shadow);background:rgba(255,255,255,.98)}.dropdown-item{border-radius:8px;font-size:.84rem;padding:.5rem .7rem}.dropdown-item:hover{background:rgba(67,97,238,.07);color:var(--wy-primary-dark)}
.alert{border-radius:13px}.modal-content{border:1px solid rgba(255,255,255,.58)!important;border-radius:22px!important;background:rgba(255,255,255,.94)!important;box-shadow:var(--wy-shadow-lg)!important;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}

/* Landing and auth */
.landing-shell{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:center;gap:clamp(28px,7vw,96px);padding:clamp(30px,7vw,90px) clamp(22px,7vw,110px)}
.landing-copy{color:#fff;text-shadow:0 2px 20px rgba(7,20,45,.16)}.landing-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);font-size:.73rem;font-weight:700;letter-spacing:.08em}.landing-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:#67e8f9;box-shadow:0 0 12px #67e8f9}.landing-copy h1{font-size:clamp(2.6rem,6vw,5.7rem);font-weight:900;letter-spacing:-.06em;line-height:.98;margin:22px 0 18px;color:#fff}.landing-copy h1 span{display:block;background:linear-gradient(90deg,#fff,#bdefff);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-copy p{max-width:650px;font-size:clamp(.96rem,1.5vw,1.18rem);line-height:1.85;color:rgba(255,255,255,.78);margin:0}.landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.landing-actions .btn{min-height:50px;padding-inline:22px}.landing-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:34px;max-width:650px}.landing-feature{padding:13px 14px;border-radius:14px;color:rgba(255,255,255,.84);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(10px)}.landing-feature strong{display:block;color:#fff;font-size:.84rem}.landing-feature small{display:block;margin-top:3px;font-size:.7rem;color:rgba(255,255,255,.58)}
.landing-preview{position:relative;padding:18px;border-radius:30px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);box-shadow:0 34px 90px rgba(7,18,40,.30);backdrop-filter:blur(20px)}.landing-preview-card{padding:24px;border-radius:22px;background:rgba(255,255,255,.90);box-shadow:inset 0 1px rgba(255,255,255,.8)}.landing-mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid rgba(100,116,139,.1)}.landing-mini-row:last-child{border-bottom:0}.landing-mini-row strong{font-size:.84rem}.landing-mini-row span{font-size:.72rem;color:#64748b}.landing-progress{height:7px;border-radius:999px;background:#e9eef7;overflow:hidden;margin-top:5px}.landing-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--wy-primary),var(--wy-cyan))}
.auth-shell{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:34px 18px}.auth-card{width:min(980px,100%);display:grid;grid-template-columns:minmax(280px,.88fr) minmax(340px,1.12fr);overflow:hidden;border-radius:28px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.5);box-shadow:0 35px 90px rgba(7,18,45,.30);backdrop-filter:blur(24px)}.auth-brand-panel{position:relative;min-height:610px;padding:44px 40px;color:#fff;background:linear-gradient(160deg,rgba(38,64,152,.92),rgba(31,98,173,.78)),url("/static/bg.webp?v=420") center/cover}.auth-brand-panel:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 15%,rgba(103,232,249,.24),transparent 40%);pointer-events:none}.auth-brand-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}.auth-brand-logo{display:flex;align-items:center;gap:10px;font-weight:800}.auth-brand-panel h1{color:#fff;font-size:2.25rem;font-weight:900;line-height:1.15;margin:auto 0 14px}.auth-brand-panel p{color:rgba(255,255,255,.72);line-height:1.75;margin:0}.auth-benefits{display:flex;flex-direction:column;gap:10px;margin-top:24px}.auth-benefit{display:flex;align-items:center;gap:9px;font-size:.8rem;color:rgba(255,255,255,.82)}.auth-benefit:before{content:"✓";width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(103,232,249,.18);color:#a5f3fc;font-weight:900}.auth-form-panel{padding:clamp(30px,5vw,60px);display:flex;align-items:center}.auth-form-wrap{width:100%;max-width:410px;margin:auto}.auth-heading{margin-bottom:28px}.auth-heading .eyebrow{margin-bottom:8px}.auth-heading h2{font-size:1.7rem;font-weight:850;margin:0}.auth-heading p{margin:7px 0 0;color:var(--wy-muted);font-size:.85rem}.auth-options{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 1px 18px}.password-input-group{border-radius:12px;overflow:hidden}.password-toggle-btn{min-width:48px!important;border-left:0!important;background:rgba(255,255,255,.75)!important}.password-toggle-btn svg{width:18px;height:18px;fill:none;stroke:#64748b;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.captcha-container{margin:16px 0;width:100%}#captcha-button{width:100%;height:44px!important;border:1px dashed rgba(67,97,238,.32)!important;background:rgba(67,97,238,.045)!important;border-radius:12px!important;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#526079;font-size:.82rem;transition:.18s}#captcha-button:hover{background:rgba(67,97,238,.08)!important}#captcha-button.verified{background:rgba(34,197,94,.08)!important;border-color:rgba(34,197,94,.4)!important;color:#15803d!important}#captcha-element{display:none}.auth-switch{text-align:center;margin-top:18px;color:#718096;font-size:.82rem}.auth-switch a{font-weight:750}

/* Dashboard */
.dashboard-hero{position:relative;overflow:hidden;padding:28px 30px;border-radius:var(--wy-radius-lg);background:linear-gradient(125deg,rgba(41,70,176,.91),rgba(51,112,190,.78));border:1px solid rgba(255,255,255,.28);box-shadow:var(--wy-shadow);color:#fff}.dashboard-hero:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-100px;top:-180px;background:rgba(103,232,249,.2)}.dashboard-hero:after{content:"";position:absolute;inset:auto -40px -90px auto;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.08)}.dashboard-hero>*{position:relative;z-index:1}.dashboard-greeting{font-size:clamp(1.45rem,3vw,2.3rem);font-weight:900;color:#fff;margin:0}.dashboard-hero p{margin:8px 0 0;color:rgba(255,255,255,.72)}.dashboard-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.dashboard-hero .btn-light{background:#fff}.dashboard-balance{display:flex;align-items:flex-end;gap:9px;margin-top:26px}.dashboard-balance strong{font-size:2.15rem;line-height:1}.dashboard-balance span{font-size:.75rem;color:rgba(255,255,255,.65);padding-bottom:3px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{padding:20px;border-radius:17px;background:var(--wy-panel);border:1px solid rgba(255,255,255,.48);box-shadow:var(--wy-shadow-sm);backdrop-filter:blur(16px)}.stat-card-head{display:flex;align-items:center;justify-content:space-between}.stat-card-label{font-size:.75rem;color:#718096;font-weight:700}.stat-card-icon{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--wy-primary);background:rgba(67,97,238,.08)}.stat-card-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}.stat-card-value{font-size:1.65rem;font-weight:850;color:#17213a;margin-top:12px}.stat-card-note{font-size:.7rem;color:#8a96a8;margin-top:3px}.quick-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-action-card{display:flex;align-items:center;gap:12px;padding:16px;border-radius:16px;color:#29364f!important;background:rgba(255,255,255,.70);border:1px solid rgba(255,255,255,.55);box-shadow:var(--wy-shadow-sm);transition:.18s}.quick-action-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.9);box-shadow:var(--wy-shadow)}.quick-action-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--wy-primary-2),var(--wy-primary))}.quick-action-icon.cyan{background:linear-gradient(135deg,#22d3ee,#0891b2)}.quick-action-icon.green{background:linear-gradient(135deg,#4ade80,#16a34a)}.quick-action-icon.orange{background:linear-gradient(135deg,#fbbf24,#f97316)}.quick-action-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9}.quick-action-card strong{display:block;font-size:.88rem}.quick-action-card small{display:block;color:#7b8799;font-size:.69rem;margin-top:2px}.dashboard-list{display:flex;flex-direction:column}.dashboard-order-row{display:grid;grid-template-columns:minmax(160px,1.5fr) minmax(120px,1fr) 100px 80px 130px;gap:12px;align-items:center;padding:14px 2px;border-bottom:1px solid rgba(100,116,139,.1)}.dashboard-order-row:last-child{border-bottom:0}.dashboard-order-row .course{font-weight:750;color:#24304a}.dashboard-order-row .meta{font-size:.72rem;color:#78859a}.dashboard-order-row .time{font-size:.72rem;color:#7b8799}.dashboard-empty{padding:36px;text-align:center;color:#7b8799}.skeleton-line{height:12px;border-radius:999px;background:linear-gradient(90deg,rgba(226,232,240,.7),rgba(248,250,252,.95),rgba(226,232,240,.7));background-size:220% 100%;animation:wy-shimmer 1.3s linear infinite}@keyframes wy-shimmer{to{background-position:-220% 0}}

/* Course page */
.mode-card{height:auto!important;min-height:88px;border:1px solid rgba(148,163,184,.16)!important;border-radius:16px!important;padding:16px!important;background:rgba(255,255,255,.55)!important;box-shadow:none;transition:.18s!important}.mode-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.78)!important}.mode-card.active{border-color:rgba(67,97,238,.38)!important;background:linear-gradient(135deg,rgba(67,97,238,.12),rgba(34,211,238,.07))!important;box-shadow:0 10px 25px rgba(67,97,238,.09)}.mode-icon{width:46px!important;height:46px!important;flex:0 0 46px;border-radius:14px!important;background:linear-gradient(135deg,rgba(67,97,238,.14),rgba(34,211,238,.10))!important;font-size:1.2rem!important}.course-item{border:1px solid rgba(148,163,184,.16)!important;border-radius:14px!important;background:rgba(255,255,255,.62)!important;padding:13px!important;margin-bottom:9px!important}.course-item:hover{border-color:rgba(67,97,238,.25)!important;box-shadow:0 8px 20px rgba(35,52,95,.08)!important}.course-item.active{border-color:rgba(67,97,238,.48)!important;background:rgba(67,97,238,.08)!important}.course-thumb{border-radius:12px!important;box-shadow:0 4px 14px rgba(30,41,59,.1)}.course-search-wrap{position:relative}.course-search-wrap svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:#8a97aa;stroke-width:1.8}.course-search-wrap input{padding-left:40px}.step-badge{width:30px;height:30px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.78rem;font-weight:800;background:linear-gradient(135deg,var(--wy-primary-2),var(--wy-primary));box-shadow:0 7px 16px rgba(67,97,238,.2)}.sticky-order-bar{position:sticky;bottom:18px;z-index:10;border-radius:16px;background:rgba(255,255,255,.91);border:1px solid rgba(255,255,255,.55);box-shadow:0 18px 45px rgba(15,23,42,.16);backdrop-filter:blur(18px)}

/* Order page */
.orders-toolbar{padding:2px}.orders-table-wrap{border-radius:15px!important;border:1px solid rgba(148,163,184,.14);background:rgba(255,255,255,.60)!important}.orders-table thead th{background:rgba(247,249,253,.94)!important}.orders-table tbody tr{background:rgba(255,255,255,.50)!important}.orders-table tbody tr:hover{background:rgba(244,247,255,.92)!important}.orders-status-badge{min-width:68px!important;padding:.38rem .68rem!important;font-size:.74rem!important;box-shadow:inset 0 1px rgba(255,255,255,.24)}.status-running{background:linear-gradient(135deg,#f59e0b,#f97316)!important}.status-queue{background:linear-gradient(135deg,#e879f9,#8b5cf6)!important}.status-done{background:linear-gradient(135deg,#22c55e,#059669)!important}.status-stop{background:linear-gradient(135deg,#64748b,#475569)!important}.status-other{background:linear-gradient(135deg,#60a5fa,#4361ee)!important}.progress-ring{width:64px!important;height:64px!important;background:conic-gradient(var(--wy-primary) calc(var(--p)*1%),rgba(67,97,238,.12) 0)!important}.progress-ring:after{background:rgba(255,255,255,.96)!important}.progress-ring>span{font-size:.78rem}.order-mobile-list{display:none}.order-mobile-card{padding:15px;border:1px solid rgba(148,163,184,.14);border-radius:15px;background:rgba(255,255,255,.68);box-shadow:var(--wy-shadow-sm)}.order-mobile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.order-mobile-title{font-weight:800;color:#25324c}.order-mobile-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.order-mobile-meta-item{padding:10px;border-radius:11px;background:rgba(248,250,252,.66)}.order-mobile-meta-item small{display:block;color:#8793a5;font-size:.65rem}.order-mobile-meta-item strong{display:block;color:#344054;font-size:.78rem;margin-top:2px;word-break:break-word}.order-mobile-remarks{font-size:.76rem;color:#667085;line-height:1.55;margin-top:12px}.order-mobile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.order-mobile-actions .btn{flex:1;min-width:95px}.order-mobile-select{display:flex;align-items:center;gap:7px;font-size:.73rem;color:#667085}

/* Profile and finance */
.profile-page .section-title{font-size:1.15rem!important;font-weight:850!important}.avatar-shell{box-shadow:0 12px 28px rgba(67,97,238,.14),inset 0 0 0 1px rgba(67,97,238,.08)!important;background:linear-gradient(135deg,rgba(67,97,238,.12),rgba(34,211,238,.11))!important;color:var(--wy-primary)!important}.info-chip{border:1px solid rgba(67,97,238,.10);font-size:.77rem!important}.superior-box,.profile-summary,.notice-box,.subordinate-stat,.preview-box,.summary-box,.status-box{background:rgba(255,255,255,.52)!important;border:1px solid rgba(255,255,255,.52)!important;box-shadow:inset 0 1px rgba(255,255,255,.55)}.pay-method-card{border:1px solid rgba(148,163,184,.18)!important;border-radius:15px!important;background:rgba(255,255,255,.58)!important;transition:.18s!important}.pay-method-card:hover{transform:translateY(-2px);border-color:rgba(67,97,238,.28)!important}.pay-method-card.active{border-color:rgba(67,97,238,.5)!important;background:linear-gradient(135deg,rgba(67,97,238,.12),rgba(34,211,238,.07))!important;box-shadow:0 9px 22px rgba(67,97,238,.09)}
.finance-form-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:stretch}.finance-info-panel{padding:24px;border-radius:18px;color:#fff;background:linear-gradient(145deg,rgba(48,73,174,.94),rgba(34,129,176,.82));box-shadow:var(--wy-shadow)}.finance-info-panel h3{color:#fff;font-weight:850}.finance-info-panel p{color:rgba(255,255,255,.72);line-height:1.7;font-size:.83rem}.finance-info-list{display:flex;flex-direction:column;gap:10px;margin-top:22px}.finance-info-item{display:flex;align-items:center;gap:9px;font-size:.78rem;color:rgba(255,255,255,.82)}.finance-info-item:before{content:"";width:7px;height:7px;border-radius:50%;background:#67e8f9;box-shadow:0 0 9px #67e8f9}.amount-preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.amount-preset{border:1px solid rgba(67,97,238,.2);background:rgba(67,97,238,.05);color:var(--wy-primary);border-radius:9px;padding:6px 11px;font-size:.74rem;font-weight:750}.amount-preset:hover{background:rgba(67,97,238,.1)}

/* Notice */
.notice-paper{position:relative;padding:clamp(24px,5vw,54px);min-height:340px}.notice-paper:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:18px 18px 0 0;background:linear-gradient(90deg,var(--wy-primary),var(--wy-cyan))}.notice-content{white-space:pre-wrap;line-height:2;color:#344054;font-size:.94rem}.notice-meta{display:flex;align-items:center;gap:8px;color:#8490a2;font-size:.75rem}.notice-dot{width:8px;height:8px;border-radius:50%;background:var(--wy-primary);box-shadow:0 0 0 5px rgba(67,97,238,.09)}

/* Quick nav */
.quick-nav-dialog{max-width:620px}.quick-nav-dialog .modal-content{overflow:hidden}.quick-nav-search-wrap{height:64px;display:flex;align-items:center;gap:11px;padding:0 17px;border-bottom:1px solid rgba(100,116,139,.12)}.quick-nav-search-wrap svg{color:#7c899c}.quick-nav-search-wrap input{flex:1;border:0;outline:0;background:transparent;font-size:.96rem;color:#23304a}.quick-nav-search-wrap kbd{font-size:.63rem;background:#eef2f7;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;padding:3px 6px}.quick-nav-list{max-height:min(480px,60vh);overflow:auto;padding:9px}.quick-nav-list a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 13px;border-radius:11px;color:#29364f}.quick-nav-list a:hover,.quick-nav-list a.focused{background:rgba(67,97,238,.07);color:var(--wy-primary)}.quick-nav-list span{font-weight:750;font-size:.86rem}.quick-nav-list small{color:#8a96a8;font-size:.7rem}.quick-nav-empty{padding:32px;text-align:center;color:#8a96a8}

/* Mobile navigation */
.mobile-bottom-nav{display:none}.back-to-top{position:fixed;right:22px;bottom:22px;z-index:1040;width:42px;height:42px;border:1px solid rgba(255,255,255,.55);border-radius:13px;background:rgba(255,255,255,.82);color:var(--wy-primary);box-shadow:var(--wy-shadow);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s}.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top svg{width:20px;height:20px}

/* Toasts and loading */
.wuyubao-toast-root{position:fixed;top:88px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:10px;width:min(370px,calc(100vw - 24px));pointer-events:none}.wuyubao-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border-radius:15px;background:rgba(255,255,255,.96);border:1px solid rgba(148,163,184,.16);box-shadow:0 18px 48px rgba(15,23,42,.18);backdrop-filter:blur(14px);opacity:0;transform:translateY(-8px) scale(.98);transition:.18s}.wuyubao-toast.show{opacity:1;transform:translateY(0) scale(1)}.wuyubao-toast-success{border-left:4px solid #22c55e}.wuyubao-toast-danger{border-left:4px solid #ef4444}.wuyubao-toast-warning{border-left:4px solid #f59e0b}.wuyubao-toast-info,.wuyubao-toast-secondary,.wuyubao-toast-primary{border-left:4px solid var(--wy-primary)}.wuyubao-toast-icon{width:28px;height:28px;border-radius:9px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;font-weight:900;color:#fff;background:var(--wy-primary)}.wuyubao-toast-success .wuyubao-toast-icon{background:#22c55e}.wuyubao-toast-danger .wuyubao-toast-icon{background:#ef4444}.wuyubao-toast-warning .wuyubao-toast-icon{background:#f59e0b}.wuyubao-toast-main{min-width:0;flex:1}.wuyubao-toast-title{font-weight:800;color:#172033;font-size:.83rem}.wuyubao-toast-message{color:#526079;line-height:1.5;font-size:.79rem;word-break:break-word}.wuyubao-toast-details{margin-top:5px;color:#7b8799;font-size:.7rem;line-height:1.45}.wuyubao-toast-close{border:0;background:transparent;color:#94a3b8;font-size:20px;line-height:1;padding:0;width:22px;height:22px}.wuyubao-toast-close:hover{color:#334155}
body.wuyubao-loading-open{overflow:hidden}.wuyubao-loading-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,20,42,.28);opacity:0;pointer-events:none;transition:.18s;backdrop-filter:blur(4px)}.wuyubao-loading-overlay.show{opacity:1;pointer-events:auto}.wuyubao-loading-card{width:min(340px,calc(100vw - 32px));padding:25px 22px;border-radius:20px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.65);box-shadow:var(--wy-shadow-lg);text-align:center}.wuyubao-loading-spinner{width:48px;height:48px;margin:0 auto 15px;border-radius:50%;border:4px solid rgba(67,97,238,.14);border-top-color:var(--wy-primary);animation:wy-spin .78s linear infinite}.wuyubao-loading-title{font-size:1rem;font-weight:800;color:#172033}.wuyubao-loading-desc{margin-top:7px;color:#718096;line-height:1.55;font-size:.8rem}@keyframes wy-spin{to{transform:rotate(360deg)}}.wuyubao-login-popup-body{white-space:pre-wrap;word-break:break-word;line-height:1.85;color:#344054;max-height:min(58vh,520px);overflow:auto}.wuyubao-login-popup-updated{color:#8490a2;font-size:.78rem}

/* Buy card */
.endpoint-buy_card .app-content{padding:0}.endpoint-buy_card .app-topbar{position:relative}.endpoint-buy_card #buycard-wrap{height:calc(100vh - var(--wy-topbar-height))!important}.endpoint-buy_card main{height:auto!important}

/* Responsive */
@media(max-width:1199.98px){
  .app-layout{grid-template-columns:minmax(0,1fr)}
  .app-sidebar{position:fixed;left:0;top:0;width:min(286px,86vw);transform:translateX(-105%);transition:transform .22s ease}
  body.sidebar-open .app-sidebar{transform:translateX(0)}
  .sidebar-scrim{display:block;position:fixed;inset:0;z-index:1030;border:0;background:rgba(7,15,33,.46);opacity:0;visibility:hidden;transition:.2s}
  body.sidebar-open .sidebar-scrim{opacity:1;visibility:visible}
  .mobile-menu-button{display:inline-flex}
  .app-content{padding:24px 22px 18px}.app-topbar{padding-inline:22px}
  body.sidebar-collapsed .app-layout{grid-template-columns:minmax(0,1fr)}
  body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-section-label,body.sidebar-collapsed .account-meta,body.sidebar-collapsed .account-chevron,body.sidebar-collapsed .sidebar-logout span{display:initial}
  body.sidebar-collapsed .sidebar-link{justify-content:flex-start;padding:9px 12px}body.sidebar-collapsed .account-card{justify-content:flex-start;padding:10px}
  .landing-shell{grid-template-columns:1fr;padding-top:80px}.landing-preview{max-width:620px}.auth-card{grid-template-columns:minmax(250px,.72fr) minmax(360px,1.28fr)}
  .stat-grid,.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-form-shell{grid-template-columns:1fr}
}
@media(max-width:767.98px){
  :root{--wy-topbar-height:64px}
  .app-background-image{inset:0;transform:none}
  .app-topbar{height:64px;padding:8px 14px;background:rgba(244,248,255,.88)}.topbar-subtitle,.network-indicator,.balance-pill{display:none}.topbar-title{font-size:.96rem}.topbar-actions{gap:6px}.topbar-avatar{width:36px;height:36px}
  .app-content{padding:17px 12px 94px}.app-footer{display:none}.page-heading{margin-bottom:15px;align-items:flex-start}.page-heading h1{font-size:1.35rem}.page-heading p{font-size:.8rem}
  .mobile-bottom-nav{position:fixed;left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));z-index:1025;height:64px;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 5px;border:1px solid rgba(255,255,255,.65);border-radius:18px;background:rgba(255,255,255,.90);box-shadow:0 18px 48px rgba(15,23,42,.18);backdrop-filter:blur(20px)}.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#8390a3;font-size:.61rem;font-weight:700;border-radius:12px}.mobile-bottom-nav a.active{color:var(--wy-primary);background:rgba(67,97,238,.08)}.mobile-bottom-nav svg{width:20px;height:20px}
  .back-to-top{right:14px;bottom:84px;width:38px;height:38px}
  .card,.glass06{border-radius:16px!important;backdrop-filter:blur(12px)!important}.card-body{padding:17px!important}
  .landing-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 72px);padding:38px 18px}.landing-copy{text-align:center}.landing-copy h1{font-size:3.1rem}.landing-actions{justify-content:center}.landing-features{grid-template-columns:1fr 1fr}.landing-feature:last-child{grid-column:1/-1}.landing-preview{width:100%;padding:12px;border-radius:23px}.landing-preview-card{padding:17px;border-radius:18px}
  .auth-shell{padding:20px 12px}.auth-card{display:block;width:min(500px,100%);border-radius:22px}.auth-brand-panel{display:none}.auth-form-panel{padding:30px 22px;min-height:calc(100vh - 112px)}.auth-heading h2{font-size:1.5rem}
  .stat-grid,.quick-action-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-card-value{font-size:1.35rem}.quick-action-card{padding:13px;gap:9px}.quick-action-icon{width:38px;height:38px;flex-basis:38px}.quick-action-card small{display:none}.dashboard-hero{padding:22px 20px}.dashboard-order-row{grid-template-columns:1fr auto}.dashboard-order-row .meta:nth-child(2),.dashboard-order-row .time{display:none}
  .orders-table-wrap{display:none!important}.order-mobile-list{display:flex;flex-direction:column;gap:10px}.orders-toolbar>div,.orders-toolbar .dropdown,.orders-toolbar .dropdown>.btn{width:100%}.pagination-toolbar{align-items:stretch}.page-jump-wrap{width:100%}
  .finance-info-panel{padding:20px}.notice-paper{padding:24px 20px}.notice-content{font-size:.88rem;line-height:1.85}
  .wuyubao-toast-root{top:72px;right:10px;left:10px;width:auto}.wuyubao-toast{backdrop-filter:none}
  .quick-nav-dialog{margin:10px}.quick-nav-list a{align-items:flex-start;flex-direction:column;gap:2px}
}
@media(max-width:479.98px){
  .guest-header{padding:0 14px}.guest-brand small{display:none}.guest-actions .btn{padding:.43rem .7rem}
  .landing-copy h1{font-size:2.55rem}.landing-features{grid-template-columns:1fr}.landing-feature:last-child{grid-column:auto}
  .stat-grid,.quick-action-grid{grid-template-columns:1fr}.order-mobile-meta{grid-template-columns:1fr}
  .auth-options{align-items:flex-start;flex-direction:column}.page-heading-actions{width:100%}.page-heading-actions .btn{flex:1}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.app-sidebar,.app-topbar,.card,.glass06,.glass06-soft,.guest-header,.mobile-bottom-nav{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.card,.glass06{background:rgba(255,255,255,.94)!important}.app-topbar{background:#f4f7fc}.app-sidebar{background:#142347}}

/* ========================================================================== 
   Web 4.1 - fluid responsive system
   Continuous scaling first; breakpoints are used only when structure must
   genuinely reflow. This layer intentionally overrides earlier fixed sizing.
   ========================================================================== */
html{
  font-size:clamp(14px,calc(12.05px + .255vw),17px);
}
:root{
  --wy-sidebar-width:clamp(224px,16.25vw,278px);
  --wy-sidebar-collapsed:clamp(72px,5.2vw,88px);
  --wy-topbar-height:clamp(64px,5vw,78px);
  --wy-content-x:clamp(12px,2.05vw,36px);
  --wy-content-y:clamp(14px,1.75vw,30px);
  --wy-page-max:96rem;
  --wy-guest-header-height:clamp(60px,7.3vh,78px);
}
html,body{width:100%;max-width:100%;overflow-x:hidden}
body.app-body{min-height:100dvh}
body.is-guest{display:flex;flex-direction:column}
img,svg,video,canvas,iframe{max-width:100%}
.app-background,.app-background-image,.app-background-gradient{min-height:100dvh}
.app-background-image{inset:clamp(-18px,-1vw,-8px)}
.app-background-orb-a{width:clamp(240px,27vw,480px);height:clamp(240px,27vw,480px);left:clamp(-170px,-9vw,-80px);top:clamp(-145px,-8vw,-70px)}
.app-background-orb-b{width:clamp(220px,23vw,420px);height:clamp(220px,23vw,420px);right:clamp(-145px,-7vw,-65px);bottom:clamp(-125px,-6vw,-55px)}

/* Core application shell */
.app-layout{min-height:100dvh;grid-template-columns:var(--wy-sidebar-width) minmax(0,1fr)}
.app-main{min-height:100dvh}
.app-sidebar{height:100dvh;padding:clamp(12px,1.15vw,20px) clamp(10px,.95vw,16px)}
.sidebar-brand-row{height:auto;min-height:clamp(50px,4vw,62px);padding:0 clamp(3px,.4vw,7px) clamp(7px,.7vw,11px)}
.brand-mark{width:clamp(36px,2.8vw,44px);height:clamp(36px,2.8vw,44px);flex-basis:clamp(36px,2.8vw,44px);border-radius:clamp(11px,.95vw,15px)}
.sidebar-link{min-height:clamp(42px,3.1vw,50px);padding:clamp(7px,.65vw,10px) clamp(9px,.8vw,13px);gap:clamp(9px,.8vw,13px);border-radius:clamp(11px,.9vw,15px)}
.nav-icon{width:clamp(20px,1.55vw,24px);height:clamp(20px,1.55vw,24px);flex-basis:clamp(20px,1.55vw,24px)}
.account-avatar{width:clamp(34px,2.45vw,40px);height:clamp(34px,2.45vw,40px);flex-basis:clamp(34px,2.45vw,40px)}
.app-topbar{height:var(--wy-topbar-height);padding-block:clamp(8px,.8vw,13px);padding-inline:var(--wy-content-x);gap:clamp(10px,1.2vw,20px)}
.app-content{padding:var(--wy-content-y) var(--wy-content-x) clamp(16px,1.6vw,28px)}
.page-container{width:min(var(--wy-page-max),100%);margin-inline:auto}
.app-footer{font-size:clamp(.68rem,.69vw,.79rem);padding:clamp(7px,.7vw,11px) var(--wy-content-x) clamp(14px,1.5vw,25px)}
.icon-button,.mobile-menu-button{width:clamp(36px,2.65vw,42px);height:clamp(36px,2.65vw,42px)}
.topbar-command,.balance-pill{height:clamp(35px,2.55vw,40px)}
.topbar-avatar{width:clamp(35px,2.55vw,40px);height:clamp(35px,2.55vw,40px)}

/* Fluid typography and controls */
.topbar-title{font-size:clamp(.96rem,.88rem + .16vw,1.08rem)}
.topbar-subtitle{font-size:clamp(.67rem,.62rem + .12vw,.75rem)}
.page-heading{gap:clamp(10px,1.2vw,20px);margin-bottom:clamp(15px,1.45vw,24px)}
.page-heading h1{font-size:clamp(1.32rem,1.05rem + 1vw,2.05rem)}
.page-heading p{font-size:clamp(.78rem,.73rem + .18vw,.92rem)}
.btn{min-height:clamp(38px,2.75vw,43px);padding:.54rem clamp(.78rem,.7rem + .38vw,1rem);font-size:clamp(.78rem,.74rem + .12vw,.87rem)}
.btn-lg{min-height:clamp(44px,3.35vw,52px);padding-inline:clamp(1.15rem,1rem + .7vw,1.55rem)}
.form-control,.form-select,.input-group .form-control{min-height:clamp(41px,3vw,46px)}
.card,.glass06,.glass06-soft,.soft-panel{max-width:100%}
.card-body{padding:clamp(15px,1.35vw,22px)}
.table-responsive{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{min-width:max-content}

/* Fluid grids: no dependency on a small set of desktop resolutions. */
.stat-grid,.quick-action-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));
  gap:clamp(9px,1vw,15px);
}
.stat-card{padding:clamp(14px,1.3vw,21px)}
.quick-action-card{padding:clamp(12px,1.05vw,17px);gap:clamp(9px,.85vw,13px)}
.finance-form-shell{grid-template-columns:minmax(0,1fr) minmax(clamp(250px,20vw,330px),.36fr);gap:clamp(12px,1.3vw,20px)}
.dashboard-hero{padding:clamp(20px,2vw,32px)}
.dashboard-greeting{font-size:clamp(1.35rem,1.03rem + 1.15vw,2.35rem)}
.dashboard-order-row{grid-template-columns:minmax(11rem,1.6fr) minmax(7.5rem,1fr) minmax(5rem,.55fr) minmax(4.5rem,.45fr) minmax(7rem,.75fr);gap:clamp(7px,.8vw,13px)}
.notice-paper{padding:clamp(20px,3.5vw,54px)}
.quick-nav-dialog{width:min(92vw,39rem);max-width:none}

/* Guest shell */
.guest-header{
  position:relative;
  flex:0 0 auto;
  width:100%;
  height:var(--wy-guest-header-height);
  min-height:var(--wy-guest-header-height);
  padding:0 clamp(16px,5vw,86px);
  gap:clamp(10px,2vw,28px);
  background:rgba(15,28,52,.30);
  border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:none;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.guest-brand{gap:clamp(8px,.7vw,11px);min-width:0}
.guest-brand .brand-mark{width:clamp(36px,2.65vw,42px);height:clamp(36px,2.65vw,42px);flex-basis:clamp(36px,2.65vw,42px)}
.guest-brand strong{font-size:clamp(.92rem,.82rem + .22vw,1.05rem)}
.guest-brand small{font-size:clamp(.56rem,.52rem + .08vw,.63rem)}
.guest-actions{gap:clamp(6px,.65vw,10px);flex-shrink:0}
.guest-content{flex:1 0 auto;min-height:0;padding-top:0;display:block;width:100%}

/* Landing: intentionally sparse. No product data, preview cards or feature tiles. */
.endpoint-index .app-background-image{background-position:center center}
.endpoint-index .app-background-gradient{
  background:
    linear-gradient(90deg,rgba(16,29,57,.68) 0%,rgba(23,42,80,.43) 38%,rgba(32,68,118,.12) 66%,rgba(255,255,255,.09) 100%),
    linear-gradient(to bottom,rgba(9,20,44,.08),rgba(21,46,82,.25));
}
.endpoint-index .guest-content{flex:1 0 auto;min-height:0;padding-top:0;display:block;width:100%}
.landing-shell{
  min-height:calc(100dvh - var(--wy-guest-header-height));
  width:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  padding:
    clamp(24px,5vh,62px)
    clamp(20px,7vw,120px)
    max(clamp(16px,2.2vh,28px),env(safe-area-inset-bottom));
}
.landing-stage{
  display:flex;
  align-items:center;
  min-height:0;
  width:100%;
}
.landing-copy{
  width:min(100%,clamp(560px,48vw,860px));
  color:#fff;
  text-shadow:0 2px 24px rgba(7,20,45,.2);
}
.landing-kicker{
  display:inline-flex;
  align-items:center;
  gap:clamp(7px,.6vw,10px);
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
  font-size:clamp(.61rem,.58rem + .1vw,.7rem);
  font-weight:800;
  letter-spacing:.28em;
  color:rgba(255,255,255,.72);
}
.landing-kicker:before{
  width:clamp(24px,2.4vw,38px);
  height:1px;
  border-radius:0;
  background:rgba(255,255,255,.68);
  box-shadow:none;
}
.landing-copy h1{
  max-width:12.5ch;
  margin:clamp(14px,1.6vw,25px) 0 clamp(17px,1.65vw,27px);
  font-size:clamp(2.55rem,calc(1.15rem + 4vw),5.35rem);
  line-height:1.02;
  letter-spacing:-.055em;
  color:#fff;
  text-wrap:balance;
}
.landing-copy h1 span{
  display:block;
  background:linear-gradient(90deg,#fff 0%,rgba(229,244,255,.86) 72%,rgba(198,230,255,.7) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.landing-motto{max-width:44rem}
.landing-motto p{margin:0;max-width:none}
.landing-motto-en{
  font-size:clamp(.9rem,.79rem + .3vw,1.08rem)!important;
  line-height:1.65!important;
  font-weight:650;
  letter-spacing:.01em;
  color:rgba(255,255,255,.86)!important;
}
.landing-motto-cn{
  margin-top:clamp(4px,.45vw,7px)!important;
  font-size:clamp(.78rem,.71rem + .18vw,.9rem)!important;
  line-height:1.65!important;
  color:rgba(226,237,251,.7)!important;
}
.landing-actions{
  margin-top:clamp(23px,2.5vw,38px);
  gap:clamp(9px,.8vw,13px);
}
.landing-actions .btn{min-width:clamp(104px,8vw,132px)}
.landing-footer{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  padding-top:clamp(12px,1.6vh,20px);
  color:rgba(237,245,255,.62);
  font-size:clamp(.62rem,.58rem + .11vw,.7rem);
  line-height:1.5;
  text-align:center;
  text-shadow:0 1px 12px rgba(0,0,0,.18);
}

/* Height-aware layout: short laptop windows should scroll, not overlap. */
@media (max-height:680px) and (min-width:768px){
  .landing-shell{padding-top:clamp(16px,4vh,28px);padding-bottom:12px}
  .landing-copy h1{font-size:clamp(2.35rem,5.2vw,4rem);margin-block:12px 14px}
  .landing-actions{margin-top:18px}
  .landing-footer{padding-top:10px}
  .auth-shell{padding-top:clamp(18px,4vh,28px);align-items:start}
  .auth-brand-panel{min-height:520px}
}

/* Structural reflow only: everything above this point scales continuously. */
@media (max-width:1199.98px){
  .app-content{padding:var(--wy-content-y) var(--wy-content-x) clamp(16px,1.5vw,24px)}
  .app-topbar{padding-inline:var(--wy-content-x)}
  .finance-form-shell{grid-template-columns:1fr}
  .landing-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;padding-top:clamp(22px,4.5vh,48px)}
  .landing-stage{justify-content:flex-start}
  .landing-copy{width:min(100%,48rem)}
}
@media (max-width:767.98px){
  html{font-size:clamp(14px,3.7vw,15.5px)}
  :root{--wy-topbar-height:clamp(58px,9vh,66px);--wy-guest-header-height:clamp(58px,9vh,68px);--wy-content-x:clamp(11px,3.5vw,16px);--wy-content-y:clamp(13px,3vw,18px)}
  .app-footer{display:flex;padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .mobile-bottom-nav{height:clamp(58px,9vh,66px);left:clamp(7px,2.5vw,12px);right:clamp(7px,2.5vw,12px);padding:clamp(4px,1vw,7px)}
  .page-heading h1{font-size:clamp(1.25rem,5.5vw,1.55rem)}
  .stat-grid,.quick-action-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr))}
  .guest-header{height:var(--wy-guest-header-height);min-height:var(--wy-guest-header-height);padding:0 clamp(12px,4vw,20px)}
  .guest-brand small{display:none}
  .landing-shell{
    min-height:calc(100dvh - var(--wy-guest-header-height));
    padding:
      clamp(20px,5vh,42px)
      clamp(18px,6vw,34px)
      max(clamp(13px,2.2vh,22px),env(safe-area-inset-bottom));
  }
  .landing-stage{align-items:center;justify-content:center}
  .landing-copy{text-align:left;width:100%}
  .landing-copy h1{max-width:11ch;font-size:clamp(2.35rem,11vw,4.1rem);margin:clamp(14px,4vw,22px) 0 clamp(16px,4.5vw,24px)}
  .landing-actions{justify-content:flex-start;margin-top:clamp(20px,6vw,30px)}
  .landing-actions .btn{flex:0 1 auto;min-width:min(42vw,132px)}
  .landing-footer{font-size:clamp(.58rem,2.55vw,.68rem)}
  .auth-shell{min-height:calc(100dvh - var(--wy-guest-header-height));padding:clamp(18px,4vh,28px) clamp(11px,3.5vw,16px) clamp(18px,5vw,28px)}
  .auth-form-panel{min-height:0;padding:clamp(24px,6vw,34px) clamp(18px,5vw,26px)}
  .orders-toolbar>div,.orders-toolbar .dropdown,.orders-toolbar .dropdown>.btn{width:100%}
}
@media (max-width:479.98px){
  .guest-header{gap:8px}
  .guest-brand strong{font-size:.9rem}
  .guest-brand .brand-mark{width:34px;height:34px;flex-basis:34px;border-radius:10px}
  .guest-actions .btn{min-height:34px;padding:.38rem .62rem;font-size:.74rem}
  .landing-copy h1{font-size:clamp(2.15rem,11.7vw,3.25rem)}
  .landing-motto-en{font-size:.88rem!important}
  .landing-actions{width:100%}
  .landing-actions .btn{min-width:0;flex:1 1 0}
  .stat-grid,.quick-action-grid{grid-template-columns:1fr}
  .page-heading-actions{width:100%}
  .page-heading-actions .btn{flex:1 1 auto}
}
@media (min-width:2200px){
  :root{--wy-page-max:104rem}
  .landing-copy{width:min(100%,900px)}
}


/* ========================================================================== 
   Web 4.2 - guest page refinements
   - True one-column landing flow so the footer never auto-places to the right.
   - Guest copyright sits at the real bottom on tall viewports.
   - Login/register side panels use short original motivational copy only.
   ========================================================================== */
.endpoint-index .guest-content,
.endpoint-login .guest-content,
.endpoint-register .guest-content{
  min-height:calc(100dvh - var(--wy-guest-header-height));
}

/* Landing must explicitly reset the old two-column grid definition. */
.landing-shell{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  grid-template-areas:"stage" "footer";
  align-items:stretch;
}
.landing-stage{
  grid-area:stage;
  min-width:0;
}
.landing-footer{
  grid-area:footer;
  justify-self:stretch;
  align-self:end;
  margin:0;
  white-space:normal;
}
.landing-motto-main{
  margin:0!important;
  font-size:clamp(.96rem,.82rem + .36vw,1.16rem)!important;
  line-height:1.7!important;
  font-weight:700;
  letter-spacing:.01em;
  color:rgba(255,255,255,.9)!important;
}
.landing-motto-sub{
  margin:clamp(4px,.45vw,7px) 0 0!important;
  font-size:clamp(.78rem,.7rem + .2vw,.91rem)!important;
  line-height:1.7!important;
  color:rgba(226,237,251,.72)!important;
}

/* Auth pages: center the card in the available space and keep copyright below. */
.auth-shell{
  min-height:calc(100dvh - var(--wy-guest-header-height));
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  place-items:stretch center;
  gap:clamp(10px,1.8vh,20px);
  padding:
    clamp(22px,4.2vh,46px)
    clamp(14px,3vw,28px)
    max(clamp(12px,1.8vh,20px),env(safe-area-inset-bottom));
}
.auth-card{
  align-self:center;
  justify-self:center;
}
.auth-footer{
  align-self:end;
  justify-self:center;
  width:100%;
  padding-top:clamp(4px,.8vh,10px);
  color:rgba(242,247,255,.72);
  font-size:clamp(.61rem,.57rem + .1vw,.7rem);
  line-height:1.5;
  text-align:center;
  text-shadow:0 1px 10px rgba(8,20,45,.28);
}
.auth-brand-content{
  justify-content:flex-start;
}
.auth-quote{
  margin:auto 0;
  display:flex;
  flex-direction:column;
  gap:clamp(3px,.4vw,7px);
  max-width:10.5em;
  color:#fff;
  font-size:clamp(2rem,2.15rem + 1vw,3.65rem);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-.055em;
  text-shadow:0 7px 28px rgba(5,19,54,.18);
}
.auth-quote span:last-child{
  color:rgba(225,238,255,.78);
}

@media (max-height:680px) and (min-width:768px){
  .auth-shell{
    grid-template-rows:auto auto;
    align-content:start;
    padding-top:clamp(14px,3vh,22px);
  }
  .auth-card{align-self:start}
  .auth-footer{padding-bottom:2px}
}

@media (max-width:767.98px){
  .landing-shell{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"stage" "footer";
  }
  .landing-motto-main{font-size:clamp(.88rem,3.8vw,1rem)!important}
  .landing-motto-sub{font-size:clamp(.72rem,3.25vw,.84rem)!important}
  .auth-shell{
    min-height:calc(100dvh - var(--wy-guest-header-height));
    grid-template-rows:minmax(0,1fr) auto;
    padding:clamp(16px,3.5vh,26px) clamp(10px,3.5vw,16px) max(12px,env(safe-area-inset-bottom));
  }
  .auth-footer{font-size:clamp(.58rem,2.6vw,.66rem)}
}

/* Web 4.3.0 - unified brand artwork */
.brand-mark{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  overflow:visible;
  padding:0!important;
}
.brand-mark img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 6px 14px rgba(15,23,42,.16));
}
.sidebar-brand .brand-mark img,
.guest-brand .brand-mark img,
.auth-brand-logo .brand-mark img{
  transform:scale(.96);
}
.auth-brand-logo .brand-mark{
  width:clamp(40px,3vw,48px);
  height:clamp(40px,3vw,48px);
  flex:0 0 clamp(40px,3vw,48px);
}
@media (max-width: 575.98px){
  .brand-mark img{filter:drop-shadow(0 4px 9px rgba(15,23,42,.14))}
}


/* 4.4.0 - registration password rules (front-end validation only) */
.password-rules{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(6px,.8vw,8px) clamp(10px,1.2vw,14px);
  margin-top:clamp(9px,1.2vw,12px);
  padding:clamp(10px,1.4vw,13px) clamp(11px,1.5vw,14px);
  border:1px solid rgba(148,163,184,.20);
  border-radius:12px;
  background:rgba(248,250,252,.72);
}
.password-rule{
  display:flex;align-items:center;gap:7px;min-width:0;
  color:#8994a8;font-size:clamp(.69rem,.35vw + .61rem,.76rem);line-height:1.4;
  transition:color .18s ease,opacity .18s ease;
}
.password-rule-icon{
  flex:0 0 auto;width:16px;height:16px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid rgba(148,163,184,.45);color:transparent;
  font-size:10px;font-weight:900;transition:.18s ease;
}
.password-rule.is-valid{color:#15803d}.password-rule.is-valid .password-rule-icon{background:#22c55e;border-color:#22c55e;color:#fff}
.password-rule.is-invalid{color:#b45309}.password-rule.is-invalid .password-rule-icon{border-color:rgba(245,158,11,.7);background:rgba(245,158,11,.08)}
.endpoint-register #register-submit:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}
@media (max-width:420px){.password-rules{grid-template-columns:1fr}}


/* ========================================================================== 
   Web 4.5.0 - mobile guest pages, auth identity and control alignment
   ========================================================================== */

/* Guest buttons: true optical centering independent of Bootstrap line-height. */
.guest-actions .btn,
.landing-actions .btn,
.auth-form-panel button.btn:not(.password-toggle-btn),
.auth-form-panel a.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
}
.guest-actions .btn,
.landing-actions .btn{padding-top:0!important;padding-bottom:0!important}

/* Home motto: one English line + the exact Chinese sentence requested. */
.landing-motto-en{
  font-size:clamp(.9rem,.8rem + .28vw,1.08rem)!important;
  line-height:1.65!important;
  font-weight:650;
  letter-spacing:.005em;
  color:rgba(255,255,255,.88)!important;
}
.landing-motto-cn{
  margin-top:clamp(4px,.45vw,7px)!important;
  font-size:clamp(.78rem,.71rem + .18vw,.9rem)!important;
  line-height:1.65!important;
  color:rgba(226,237,251,.74)!important;
}

/* Restore the identity heading above the short motivational copy. */
.auth-brand-message{
  margin:auto 0;
  display:flex;
  flex-direction:column;
  gap:clamp(18px,2vw,26px);
}
.auth-brand-message h1{
  margin:0!important;
  max-width:100%;
  color:#fff!important;
  font-size:clamp(2.05rem,2rem + .75vw,3rem)!important;
  line-height:1.08!important;
  font-weight:900!important;
  letter-spacing:-.045em;
  text-shadow:0 7px 28px rgba(5,19,54,.18);
}
.auth-brand-message .auth-quote{
  margin:0;
  font-size:clamp(1.75rem,1.65rem + .8vw,3rem);
}

/* Confirm-password feedback; the field itself is front-end only. */
.confirm-password-feedback{
  min-height:1.2em;
  margin-top:7px;
  font-size:clamp(.68rem,.63rem + .12vw,.76rem);
  line-height:1.4;
  color:#8994a8;
}
.confirm-password-feedback.is-valid{color:#15803d}
.confirm-password-feedback.is-invalid{color:#dc2626}

/* Prevent validation border on input-group children from breaking the rounded shell. */
.password-input-group .form-control.is-valid,
.password-input-group .form-control.is-invalid{
  background-image:none;
  padding-right:.75rem;
}

/* Phone layout is intentionally redesigned instead of merely shrinking desktop. */
@media (max-width:767.98px){
  body.is-guest{min-height:100dvh;overflow-x:hidden}
  .guest-header{
    position:relative;
    z-index:20;
    height:auto;
    min-height:clamp(58px,16vw,68px);
    padding:
      max(8px,env(safe-area-inset-top))
      clamp(12px,4vw,18px)
      8px;
    gap:10px;
  }
  .guest-brand{min-width:0;gap:7px}
  .guest-brand .brand-mark{width:clamp(30px,8.5vw,36px);height:clamp(30px,8.5vw,36px);flex-basis:clamp(30px,8.5vw,36px)}
  .guest-brand strong{font-size:clamp(.86rem,3.8vw,.98rem);white-space:nowrap}
  .guest-actions{gap:6px;margin-left:auto}
  .guest-actions .btn{
    min-width:clamp(50px,15vw,62px);
    height:clamp(34px,10vw,40px);
    min-height:0;
    padding:0 clamp(9px,3vw,13px)!important;
    font-size:clamp(.72rem,3.1vw,.8rem);
    border-radius:10px;
  }

  /* Landing: readable in portrait, without desktop-sized type or dead space. */
  .endpoint-index .guest-content{min-height:0;flex:1 0 auto}
  .landing-shell{
    min-height:calc(100dvh - clamp(58px,16vw,68px));
    display:grid!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    padding:
      clamp(22px,6vh,46px)
      clamp(20px,7vw,30px)
      max(14px,env(safe-area-inset-bottom));
  }
  .landing-stage{align-items:center;justify-content:flex-start}
  .landing-copy{width:min(100%,31rem);text-align:left}
  .landing-kicker{font-size:clamp(.62rem,2.8vw,.72rem)}
  .landing-copy h1{
    max-width:8.7ch;
    margin:clamp(12px,4vw,18px) 0 clamp(14px,4vw,20px);
    font-size:clamp(2.2rem,12.2vw,3.75rem);
    line-height:.98;
    letter-spacing:-.06em;
  }
  .landing-motto{max-width:27rem}
  .landing-motto-en{font-size:clamp(.76rem,3.35vw,.9rem)!important;line-height:1.5!important}
  .landing-motto-cn{font-size:clamp(.72rem,3.15vw,.84rem)!important;line-height:1.55!important}
  .landing-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,19rem);margin-top:clamp(20px,6vw,28px)}
  .landing-actions .btn{width:100%;min-width:0;height:clamp(44px,12vw,50px);min-height:0;border-radius:12px;font-size:clamp(.78rem,3.5vw,.88rem)}
  .landing-footer{padding-top:14px;font-size:clamp(.55rem,2.55vw,.66rem);line-height:1.45}

  /* Auth card becomes a deliberate vertical composition on phones. */
  .endpoint-login .guest-content,
  .endpoint-register .guest-content{min-height:0;flex:1 0 auto}
  .auth-shell{
    min-height:auto;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    gap:12px;
    padding:clamp(12px,4vw,18px) clamp(10px,3.5vw,16px) max(14px,env(safe-area-inset-bottom));
  }
  .auth-card{
    width:min(100%,34rem);
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto;
    overflow:hidden;
    border-radius:20px;
  }
  .auth-brand-panel{
    display:block!important;
    min-height:0!important;
    padding:clamp(18px,5vw,24px) clamp(18px,5.5vw,26px)!important;
    background:
      linear-gradient(145deg,rgba(37,68,159,.94),rgba(26,105,186,.82)),
      url("/static/bg.webp?v=450") center 36%/cover!important;
  }
  .auth-brand-content{height:auto;gap:clamp(18px,5vw,26px)}
  .auth-brand-logo{font-size:clamp(.92rem,4vw,1.05rem)}
  .auth-brand-logo .brand-mark{width:36px;height:36px;flex-basis:36px}
  .auth-brand-message{margin:0;gap:8px}
  .auth-brand-message h1{font-size:clamp(1.55rem,7.1vw,2.05rem)!important;letter-spacing:-.04em}
  .auth-brand-message .auth-quote{
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    gap:0 .38em;
    max-width:none;
    font-size:clamp(.88rem,3.8vw,1.02rem);
    line-height:1.45;
    letter-spacing:0;
    font-weight:750;
    color:rgba(255,255,255,.92);
  }
  .auth-brand-message .auth-quote span:last-child{color:rgba(230,241,255,.78)}
  .auth-form-panel{
    display:block;
    min-height:0!important;
    padding:clamp(22px,6vw,30px) clamp(18px,5.5vw,26px) clamp(24px,6.5vw,32px)!important;
  }
  .auth-form-wrap{max-width:none;margin:0}
  .auth-heading{margin-bottom:clamp(18px,5vw,24px)}
  .auth-heading h2{font-size:clamp(1.4rem,6vw,1.7rem)}
  .auth-heading p{font-size:clamp(.75rem,3.2vw,.84rem);line-height:1.5}
  .auth-form-panel .form-label{font-size:clamp(.75rem,3.25vw,.83rem)}
  .auth-form-panel .form-control,
  .auth-form-panel .input-group .form-control{
    min-height:clamp(44px,12vw,50px);
    font-size:clamp(.84rem,3.6vw,.94rem);
  }
  .password-toggle-btn{min-width:46px!important}
  .password-rules{grid-template-columns:1fr 1fr;padding:9px 10px;gap:6px 8px}
  .password-rule{font-size:clamp(.63rem,2.9vw,.72rem)}
  #captcha-button{height:clamp(44px,12vw,50px)!important}
  .auth-form-panel button.btn:not(.password-toggle-btn){height:clamp(46px,12.5vw,52px);min-height:0}
  .auth-options{margin-block:11px 16px}
  .auth-switch{margin-top:15px}
  .auth-footer{padding:0 6px;font-size:clamp(.55rem,2.45vw,.64rem)}
}

@media (max-width:389.98px){
  .guest-brand strong{font-size:.84rem}
  .guest-actions .btn{min-width:48px;padding-inline:8px!important}
  .landing-copy h1{font-size:clamp(2.05rem,12.4vw,2.85rem)}
  .landing-actions{width:100%}
  .password-rules{grid-template-columns:1fr}
  .auth-brand-message .auth-quote{font-size:.84rem}
}

/* Short phones: rely on natural page scroll and tighten vertical rhythm. */
@media (max-width:767.98px) and (max-height:700px){
  .landing-shell{padding-top:18px;padding-bottom:10px}
  .landing-copy h1{font-size:clamp(2rem,10.5vw,3rem);margin-block:10px 12px}
  .landing-actions{margin-top:16px}
  .auth-shell{padding-top:10px}
  .auth-brand-panel{padding-block:15px!important}
  .auth-form-panel{padding-top:18px!important;padding-bottom:22px!important}
}

/* ========================================================================== 
   Web 4.6.0 - stable shell, responsive mobile layout and restored workflow
   ========================================================================== */
:root{
  --wy-sidebar-width:238px;
  --wy-sidebar-collapsed:76px;
  --wy-topbar-height:66px;
}

/* Keep screenshots and screen-capture tools stable. */
*,*::before,*::after{
  content-visibility:visible!important;
  contain:none!important;
}
.app-background-orb{display:none!important;animation:none!important}
.app-background-image{inset:0!important;filter:none!important;transform:none!important;background-position:center!important}
.app-sidebar,.app-topbar,.mobile-bottom-nav,.card,.dashboard-hero,.guest-header,.auth-card,.auth-brand-panel,
.glass06,.glass06-soft,.soft-panel,.finance-info-panel,.mode-card,.course-item{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  animation:none!important;
}
.card,.mode-card,.course-item,.sidebar-link,.btn,.dashboard-shortcuts a{transform:none!important}

/* Images used as account avatars. */
.account-avatar,.topbar-avatar,.profile-avatar-xl,.profile-avatar-md,.profile-avatar-sm{overflow:hidden}
.account-avatar img,.topbar-avatar img,.profile-avatar-xl img,.profile-avatar-md img,.profile-avatar-sm img{
  display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;
}

/* Desktop application shell: sidebar is independent from document scroll. */
@media (min-width:1200px){
  .app-layout{display:block;min-height:100vh}
  .app-sidebar{
    position:fixed!important;left:0;top:0;bottom:0;width:var(--wy-sidebar-width);height:100dvh;
    background:linear-gradient(180deg,#111f3d,#1e3558)!important;
  }
  .app-main{margin-left:var(--wy-sidebar-width);min-height:100vh;transition:margin-left .2s ease}
  body.sidebar-collapsed .app-main{margin-left:var(--wy-sidebar-collapsed)}
  body.sidebar-collapsed .app-sidebar{width:var(--wy-sidebar-collapsed)}
}

.app-topbar{
  min-height:var(--wy-topbar-height);height:auto;padding:10px clamp(18px,2vw,30px);
  background:rgba(247,249,255,.96)!important;
  border-bottom:1px solid rgba(148,163,184,.18);
}
.app-content{padding:clamp(18px,2vw,28px) clamp(16px,2.2vw,32px) 26px}
.page-container{width:min(1460px,100%)}
.app-footer{padding:10px 20px 18px}
.topbar-title{font-size:1.08rem}
.topbar-avatar{width:40px;height:40px;border:0;border-radius:13px;padding:0}
.account-avatar{padding:0}

/* Shared page titles: no decorative explanation rows. */
.page-heading{margin-bottom:18px}
.page-heading.compact-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.page-heading h1{margin:2px 0 0;font-size:clamp(1.65rem,2vw,2.25rem);line-height:1.12}
.page-heading p,.section-heading p,.section-title-row p{display:none!important}
.page-heading-actions{display:flex;gap:10px;flex-wrap:wrap}
.section-title-row{display:flex;align-items:center;gap:11px;justify-content:space-between;margin-bottom:18px}
.section-title-row h2{margin:0;font-size:1.18rem;font-weight:800}
.summary-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:#eef2ff;color:#3547b8;font-size:.82rem;font-weight:700}
.step-badge{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;border-radius:9px;background:linear-gradient(135deg,#5f7cff,#4361ee);color:#fff;font-weight:800;box-shadow:0 7px 18px rgba(67,97,238,.22)}

/* Dashboard. */
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.95fr);gap:18px;margin-bottom:18px}
.dashboard-hero{min-height:270px;border-radius:24px;padding:clamp(26px,3vw,42px);background:linear-gradient(135deg,rgba(47,76,190,.96),rgba(52,153,207,.86))!important;color:#fff;position:relative;overflow:hidden;box-shadow:var(--wy-shadow)}
.dashboard-hero::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-55px;bottom:-100px;background:rgba(255,255,255,.10)}
.dashboard-greeting{position:relative;z-index:1;margin:7px 0 24px;font-size:clamp(2rem,3vw,3.15rem);font-weight:900;letter-spacing:-.04em}
.dashboard-balance{position:relative;z-index:1;display:flex;align-items:baseline;gap:10px}.dashboard-balance strong{font-size:2rem}.dashboard-balance span{color:rgba(255,255,255,.72)}
.dashboard-hero-actions{position:relative;z-index:1;display:flex;gap:10px;margin-top:20px}.dashboard-hero-actions .btn{min-width:100px}
.dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dashboard-stat{min-height:128px;padding:22px;border-radius:20px;background:rgba(255,255,255,.94);box-shadow:var(--wy-shadow-sm);border:1px solid rgba(255,255,255,.75);display:flex;flex-direction:column;justify-content:space-between}.dashboard-stat span{font-size:.82rem;color:#68758c;font-weight:700}.dashboard-stat strong{font-size:1.85rem;color:#172033}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.dashboard-shortcuts a{display:flex;align-items:center;gap:12px;min-height:76px;padding:14px 18px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.8);border-radius:18px;color:#172033;box-shadow:var(--wy-shadow-sm)}
.dashboard-shortcut-icon{width:42px;height:42px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;color:#fff}.dashboard-shortcut-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}.dashboard-shortcut-icon.primary{background:#536dfe}.dashboard-shortcut-icon.cyan{background:#06b6d4}.dashboard-shortcut-icon.green{background:#22b966}.dashboard-shortcut-icon.orange{background:#f59e0b}
.dashboard-content-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.75fr);gap:18px}
.dashboard-orders-card,.dashboard-notice-card{background:rgba(255,255,255,.94)!important}
.dashboard-orders-card .card-body,.dashboard-notice-card .card-body{padding:22px}
.dashboard-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dashboard-card-heading h2{font-size:1.12rem;margin:0;font-weight:800}.dashboard-card-heading a{font-size:.8rem;font-weight:700}
.dashboard-recent-list{display:flex;flex-direction:column;gap:8px}
.dashboard-recent-item{display:grid;grid-template-columns:minmax(180px,1.6fr) auto minmax(140px,.7fr) 150px;gap:14px;align-items:center;padding:14px 12px;border-radius:14px;border:1px solid rgba(148,163,184,.14);background:#fff}
.dashboard-recent-main{min-width:0;display:flex;flex-direction:column;gap:3px}.dashboard-recent-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-recent-main span{font-size:.76rem;color:#748198;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-recent-progress{display:flex;align-items:center;gap:8px}.dashboard-recent-progress>div{height:7px;flex:1;border-radius:99px;background:#e7edf8;overflow:hidden}.dashboard-recent-progress>div span{display:block;height:100%;background:linear-gradient(90deg,#4f6df5,#22c7df)}.dashboard-recent-progress strong{font-size:.75rem}.dashboard-recent-item time{font-size:.72rem;color:#8490a5;text-align:right}
.dashboard-notice-content{display:flex;flex-direction:column;gap:9px}.dashboard-notice-content h3{font-size:1rem;margin:0}.dashboard-notice-content time{font-size:.72rem;color:#8190a7}.dashboard-notice-content div{white-space:pre-wrap;line-height:1.75;color:#4f5e73;font-size:.88rem;max-height:250px;overflow:auto}
.dashboard-empty{padding:30px;text-align:center;color:#7b879b}
.dashboard-loading-row{height:62px;border-radius:13px;background:linear-gradient(90deg,#eef2f8,#f9fbfd,#eef2f8);background-size:200% 100%;animation:none}

/* Profile and subordinate pages. */
.profile-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;margin-bottom:18px}
.profile-summary-card,.profile-form-card,.superior-card,.subordinate-card{background:rgba(255,255,255,.95)!important}
.profile-summary-card .card-body,.profile-form-card .card-body,.superior-card .card-body,.subordinate-card .card-body{padding:24px}
.profile-summary-card{text-align:center}.profile-avatar-xl{width:108px;height:108px;margin:2px auto 14px;border-radius:30px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#5f7cff,#22c8e5);color:#fff;font-size:2.2rem;font-weight:900}.profile-summary-card h2{font-size:1.3rem;margin:0}.profile-account{margin-top:4px;color:#758197;font-family:ui-monospace,monospace;word-break:break-all}
.profile-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.profile-metric-grid>div{padding:14px;border-radius:14px;background:#f4f7fc;text-align:left}.profile-metric-grid span{display:block;color:#758197;font-size:.75rem}.profile-metric-grid strong{display:block;margin-top:4px;font-size:1.05rem}
.profile-summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-form-wide{grid-column:1/-1}.profile-save-row{display:flex;justify-content:flex-end}.profile-save-row .btn{min-width:128px}
.superior-grid{display:grid;grid-template-columns:minmax(230px,.7fr) 160px minmax(260px,1.2fr);gap:16px;align-items:stretch}.superior-person,.superior-balance,.superior-notice{border-radius:16px;background:#f5f8fd;padding:16px}.superior-person{display:flex;align-items:center;gap:12px}.superior-person>div:last-child{min-width:0;display:flex;flex-direction:column}.superior-person span{color:#748198;font-size:.8rem;word-break:break-all}.superior-balance{display:flex;flex-direction:column;justify-content:center}.superior-balance span{font-size:.75rem;color:#748198}.superior-balance strong{font-size:1.3rem;margin-top:4px}.superior-notice{white-space:pre-wrap;line-height:1.65;color:#526078}
.profile-avatar-md{width:56px;height:56px;flex:0 0 56px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:#536dfe;color:#fff;font-weight:800}.profile-avatar-sm{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:#536dfe;color:#fff;font-weight:800}
.empty-state{padding:34px;text-align:center;color:#7a879b;border:1px dashed rgba(148,163,184,.35);border-radius:16px;background:#f8fafc}
.subordinate-table{margin:0}.subordinate-table th{font-size:.75rem;color:#738097;white-space:nowrap}.subordinate-table td{border-color:#edf1f7}.subordinate-identity{display:flex;align-items:center;gap:10px;min-width:0}.subordinate-identity>div:last-child{display:flex;flex-direction:column;min-width:0}.subordinate-identity strong,.subordinate-identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subordinate-identity span{font-size:.75rem;color:#7c879a}.subordinate-actions{display:flex;justify-content:flex-end;gap:8px}.status-chip{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:800}.status-chip.success{background:#dcfce7;color:#15803d}.status-chip.neutral{background:#eef2f7;color:#64748b}.subordinate-mobile-list{display:none}.modal-account-box{padding:12px 14px;border-radius:13px;background:#f3f6fb;display:flex;justify-content:space-between;gap:12px}.modal-account-box span{color:#738097}.calculation-preview{margin-top:16px;padding:13px 14px;border-radius:13px;background:#eef3ff;color:#3547b8;font-weight:700}.app-dialog{border:0;border-radius:20px;box-shadow:0 28px 80px rgba(15,23,42,.22)}

/* Course order workflow, close to the original interaction. */
.order-mode-card,.course-select-card,.student-info-card,.course-result-card,.batch-entry-card,.batch-result-card{margin-bottom:18px;background:rgba(255,255,255,.95)!important}
.order-mode-card .card-body,.course-select-card .card-body,.student-info-card .card-body,.course-result-card .card-body,.batch-entry-card .card-body,.batch-result-card .card-body{padding:22px}
.order-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mode-card{min-height:100px;border:1px solid #e3e8f2;border-radius:17px;background:#fff!important;display:flex;align-items:center;gap:13px;padding:18px;color:#172033;text-align:left}.mode-card.active{border-color:#7692ff;background:linear-gradient(135deg,#edf2ff,#eefbff)!important;box-shadow:inset 0 0 0 1px rgba(83,109,254,.08)}.mode-card strong{font-size:1.05rem}.mode-icon{width:44px;height:44px;flex:0 0 44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#edf2ff;color:#536dfe}.mode-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mode-badge{margin-left:auto;padding:4px 7px;border-radius:999px;background:#536dfe;color:#fff;font-size:.68rem}
.course-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.course-intro-box{min-height:72px;margin-top:15px;padding:16px;border-radius:14px;background:#f7f9fc;white-space:pre-wrap;line-height:1.7}.student-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.course-form-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:18px}.query-message:empty{display:none}.query-message{margin-top:12px}
.course-result-list,.batch-result-card #batch-result-list{display:flex;flex-direction:column;gap:10px}.course-item{display:flex!important;align-items:center;gap:13px;width:100%;min-height:82px;padding:12px 14px!important;margin:0!important;border:1px solid #e1e7f0!important;border-radius:15px!important;background:#fff!important;overflow:hidden;cursor:pointer}.course-item.active{border-color:#6b87ff!important;background:#f0f4ff!important}.course-thumb{display:block!important;width:58px!important;height:58px!important;max-width:58px!important;max-height:58px!important;flex:0 0 58px!important;object-fit:cover!important;border-radius:11px!important;margin:0!important}.course-item .flex-grow-1{min-width:0}.course-item .fw-bold{white-space:normal;word-break:break-word}.course-item img[style]{width:58px!important;height:58px!important}.batch-course-item{min-height:78px}

/* Compact finance forms. */
.compact-form-card{width:min(760px,100%);margin:0 auto;background:rgba(255,255,255,.96)!important}.compact-form-card .card-body{padding:clamp(22px,4vw,38px)}.form-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-submit-button{width:100%;margin-top:20px}.amount-preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.amount-preset{border:1px solid #dce3ef;background:#fff;border-radius:10px;padding:7px 15px;color:#44516a}.amount-preset:hover{border-color:#6a84fb;color:#4361ee}

/* Order table: actions are in a modal, never inside an overflowing table. */
.orders-table-wrap{overflow-x:auto!important;overflow-y:hidden!important;border-radius:16px;background:#fff!important}.orders-table tbody tr{content-visibility:visible!important;contain:none!important}.order-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.order-action-grid .btn{min-height:44px}.orders-table .js-open-order-actions{min-width:62px}.orders-table td,.orders-table th{vertical-align:middle}.order-mobile-actions .btn{width:100%}

/* Auth left side: heading replaces the logo; motto is visually secondary. */
.auth-brand-content{height:100%;display:flex;flex-direction:column}
.auth-panel-heading{font-size:clamp(1.9rem,3vw,3rem);font-weight:900;color:#fff;letter-spacing:-.04em;line-height:1.05}
.auth-panel-motto{margin-top:auto;display:flex;align-items:flex-start;gap:12px;max-width:330px;color:rgba(255,255,255,.82)}
.auth-panel-motto p{margin:0;font-size:clamp(.92rem,1.1vw,1.08rem);line-height:1.65;font-weight:600}
.auth-panel-rule{width:28px;height:2px;margin-top:.75em;flex:0 0 28px;border-radius:2px;background:#8fefff}

/* Responsive application shell. */
@media (max-width:1199.98px){
  .app-layout{display:block}
  .app-main{margin-left:0!important}
  .app-sidebar{position:fixed!important;top:0;bottom:0;left:0;width:min(294px,82vw);height:100dvh;transform:translateX(-105%)!important;transition:transform .2s ease;z-index:1060;background:linear-gradient(180deg,#111f3d,#1e3558)!important}
  body.sidebar-open .app-sidebar{transform:translateX(0)!important}
  .sidebar-scrim{display:block;position:fixed;inset:0;border:0;background:rgba(8,18,38,.44);z-index:1055;opacity:0;visibility:hidden;transition:.2s}
  body.sidebar-open .sidebar-scrim{opacity:1;visibility:visible}
  .mobile-menu-button{display:inline-flex!important}
  .sidebar-collapse-button{display:none!important}
  .mobile-bottom-nav{display:flex!important;position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:1040;background:#fff!important;border:1px solid rgba(148,163,184,.20);box-shadow:0 16px 44px rgba(30,50,90,.20)}
  .app-content{padding-bottom:100px}
  .app-footer{padding-bottom:94px}
}

@media (max-width:991.98px){
  .dashboard-layout{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-stat{min-height:100px}
  .dashboard-content-grid{grid-template-columns:1fr}.dashboard-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-layout{grid-template-columns:1fr}.profile-summary-card .card-body{display:grid;grid-template-columns:auto 1fr;gap:18px;text-align:left}.profile-avatar-xl{margin:0}.profile-metric-grid,.profile-summary-actions{grid-column:1/-1}.superior-grid{grid-template-columns:1fr 1fr}.superior-notice{grid-column:1/-1}
  .student-form-grid{grid-template-columns:1fr 1fr}.student-form-grid>div:first-child{grid-column:1/-1}
}

@media (max-width:767.98px){
  :root{--wy-topbar-height:58px}
  body.is-authenticated{background:#eaf0f9!important}
  .app-background-image{background-position:58% center!important}
  .app-topbar{padding:8px 12px;min-height:58px}.topbar-title{font-size:1rem}.topbar-actions{gap:6px}.network-indicator,.topbar-command,.balance-pill{display:none!important}.topbar-avatar{width:38px;height:38px;border-radius:12px}
  .app-content{padding:14px 12px 104px}.page-container{width:100%}.app-footer{display:none}
  .page-heading.compact-heading,.page-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.page-heading h1{font-size:1.48rem}.eyebrow{font-size:.6rem}.page-heading-actions{gap:7px}.page-heading .btn{padding:.48rem .72rem;font-size:.76rem}
  .card{border-radius:17px!important}.card-body{padding:16px!important}.section-title-row{margin-bottom:14px}.section-title-row h2{font-size:1.02rem}

  .dashboard-layout{display:block}.dashboard-hero{min-height:0;padding:22px 18px;border-radius:20px;margin-bottom:12px}.dashboard-greeting{font-size:1.75rem;margin:5px 0 18px}.dashboard-balance strong{font-size:1.65rem}.dashboard-hero-actions{margin-top:16px}.dashboard-hero-actions .btn{flex:1;min-width:0}
  .dashboard-stats{grid-template-columns:1fr 1fr;gap:10px}.dashboard-stat{min-height:96px;padding:15px;border-radius:16px}.dashboard-stat strong{font-size:1.45rem}
  .dashboard-shortcuts{grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.dashboard-shortcuts a{min-height:64px;padding:11px;border-radius:15px}.dashboard-shortcut-icon{width:36px;height:36px;border-radius:11px}.dashboard-shortcuts strong{font-size:.82rem}
  .dashboard-content-grid{gap:12px}.dashboard-orders-card .card-body,.dashboard-notice-card .card-body{padding:16px!important}.dashboard-recent-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:13px}.dashboard-recent-progress{grid-column:1/-1}.dashboard-recent-item time{display:none}.dashboard-recent-main span{font-size:.7rem}.dashboard-notice-content div{max-height:190px}

  .profile-layout{display:block}.profile-summary-card{margin-bottom:12px}.profile-summary-card .card-body{display:block;text-align:center}.profile-avatar-xl{width:88px;height:88px;border-radius:25px;margin:0 auto 12px}.profile-metric-grid{grid-template-columns:1fr 1fr}.profile-form-grid{grid-template-columns:1fr}.profile-form-wide{grid-column:auto}.profile-save-row .btn{width:100%}.superior-grid{grid-template-columns:1fr}.superior-notice{grid-column:auto}.profile-summary-actions{grid-template-columns:1fr 1fr}
  .subordinate-table-wrap{display:none}.subordinate-mobile-list{display:flex;flex-direction:column;gap:11px}.subordinate-mobile-card{padding:15px;border:1px solid #e5eaf2;border-radius:16px;background:#fff}.subordinate-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.subordinate-mobile-metrics{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px;margin:14px 0}.subordinate-mobile-metrics div{min-width:0;padding:10px;border-radius:12px;background:#f5f7fb}.subordinate-mobile-metrics span{display:block;font-size:.65rem;color:#7a8799}.subordinate-mobile-metrics strong{display:block;margin-top:3px;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subordinate-actions .btn{flex:1}

  .order-mode-grid{grid-template-columns:1fr 1fr;gap:9px}.mode-card{min-height:82px;padding:12px;gap:8px;border-radius:14px}.mode-icon{width:36px;height:36px;flex-basis:36px}.mode-card strong{font-size:.9rem}.mode-badge{display:none}.course-select-grid,.student-form-grid,.form-grid-two{grid-template-columns:1fr}.student-form-grid>div:first-child{grid-column:auto}.course-form-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.course-form-actions .btn{padding-inline:6px;font-size:.76rem}.course-intro-box{min-height:58px;padding:12px;font-size:.8rem}.course-item{min-height:72px;padding:10px!important}.course-thumb{width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important;flex-basis:50px!important}.batch-entry-card textarea{min-height:180px}

  .orders-table-wrap{display:none!important}.order-mobile-list{display:flex!important;flex-direction:column;gap:10px}.order-mobile-card{background:#fff!important;border:1px solid #e4e9f2!important;border-radius:16px!important;padding:15px!important}.order-mobile-meta{grid-template-columns:1fr 1fr!important}.orders-toolbar{align-items:center!important}.orders-toolbar>div:first-child{min-width:0}.orders-toolbar .dropdown,.orders-toolbar .dropdown>.btn{width:auto!important}.pagination-toolbar{gap:10px}.pagination-toolbar>div:last-child{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.page-jump-wrap{grid-column:1/-1;display:grid!important;grid-template-columns:auto 1fr auto;width:100%}.page-jump-wrap input{width:100%!important}

  .compact-form-card{width:100%}.compact-form-card .card-body{padding:20px!important}.form-submit-button{margin-top:16px}

  .auth-panel-heading{font-size:1.55rem}.auth-panel-motto{margin-top:14px}.auth-panel-motto p{font-size:.84rem;line-height:1.55}.auth-panel-rule{width:20px;flex-basis:20px}
}

@media (max-width:420px){
  .app-content{padding-inline:10px}.dashboard-stats{gap:8px}.dashboard-stat{padding:13px}.dashboard-shortcuts a{gap:8px}.dashboard-shortcut-icon{width:33px;height:33px}.dashboard-shortcuts strong{font-size:.75rem}
  .order-mode-grid{grid-template-columns:1fr}.mode-card{min-height:68px}.course-form-actions{grid-template-columns:1fr}.subordinate-mobile-metrics{grid-template-columns:1fr 1fr}.subordinate-mobile-metrics>div:last-child{grid-column:1/-1}
  .mobile-bottom-nav{left:6px;right:6px;bottom:max(6px,env(safe-area-inset-bottom))}.mobile-bottom-nav a{font-size:.59rem}
}

/* 4.6 template aliases */
.course-mode-section,.course-select-section,.course-student-section,.course-result-section,.course-batch-section{margin-bottom:18px;background:rgba(255,255,255,.95)!important}
.course-mode-section .card-body,.course-select-section .card-body,.course-student-section .card-body,.course-result-section .card-body,.course-batch-section .card-body{padding:22px}
.course-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.course-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.course-intro{min-height:72px;margin-top:15px;padding:16px;border-radius:14px;background:#f7f9fc;white-space:pre-wrap;line-height:1.7}
.auth-panel-caption{display:inline-block;margin-bottom:7px;color:#8fefff;font-size:.66rem;font-weight:900;letter-spacing:.18em}
.auth-panel-motto p{display:flex;flex-direction:column;gap:3px}
.auth-panel-motto p span{font-size:.84rem;font-weight:600;color:rgba(255,255,255,.68)}
.auth-panel-motto p strong{font-size:1.08rem;font-weight:800;color:#fff}
@media (max-width:767.98px){
  .course-mode-grid{grid-template-columns:1fr 1fr;gap:9px}
  .course-student-grid{grid-template-columns:1fr}
  .course-intro{min-height:58px;padding:12px;font-size:.8rem}
  .auth-panel-caption{margin-bottom:4px}
  .auth-panel-motto p{display:block}
  .auth-panel-motto p span,.auth-panel-motto p strong{display:inline;font-size:.84rem}
  .auth-panel-motto p strong{margin-left:.35em}
}
@media (max-width:420px){.course-mode-grid{grid-template-columns:1fr}}


/* ========================================================================== 
   Web 4.7.0 - restored frosted glass, classic profile and course picker
   ========================================================================== */
:root{
  --wy-panel:rgba(255,255,255,.66);
  --wy-panel-strong:rgba(255,255,255,.82);
  --wy-panel-soft:rgba(248,250,252,.54);
}

/* Restore the translucent frosted-glass treatment without lazy-render tricks. */
body.app-body .card,
body.app-body .glass06,
body.app-body .site-glass{
  background:rgba(255,255,255,.66)!important;
  border:1px solid rgba(255,255,255,.46)!important;
  box-shadow:0 16px 42px rgba(24,42,78,.13)!important;
  -webkit-backdrop-filter:blur(16px) saturate(120%)!important;
  backdrop-filter:blur(16px) saturate(120%)!important;
}
body.app-body .glass06-soft,
body.app-body .soft-panel,
body.app-body .course-intro,
body.app-body .superior-box,
body.app-body .profile-summary,
body.app-body .notice-box{
  background:rgba(255,255,255,.48)!important;
  border-color:rgba(255,255,255,.42)!important;
  -webkit-backdrop-filter:blur(10px) saturate(115%)!important;
  backdrop-filter:blur(10px) saturate(115%)!important;
}
body.app-body .dashboard-stat,
body.app-body .dashboard-shortcuts a,
body.app-body .dashboard-orders-card,
body.app-body .dashboard-notice-card,
body.app-body .profile-summary-card,
body.app-body .profile-form-card,
body.app-body .superior-card,
body.app-body .subordinate-card,
body.app-body .course-mode-section,
body.app-body .course-select-section,
body.app-body .course-student-section,
body.app-body .course-result-section,
body.app-body .course-batch-section{
  background:rgba(255,255,255,.66)!important;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body.app-body .card,body.app-body .glass06,body.app-body .site-glass{background:rgba(255,255,255,.91)!important}
}

/* Course category chips + searchable course selector. */
.course-category-pills{
  display:flex;align-items:center;gap:8px;overflow-x:auto;padding:10px 12px;margin-bottom:18px;
  border-radius:16px;background:rgba(239,247,255,.60);border:1px solid rgba(255,255,255,.52);
  scrollbar-width:thin;scrollbar-color:rgba(67,97,238,.25) transparent;
}
.course-category-pill{
  flex:0 0 auto;min-height:34px;padding:6px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.25);
  background:rgba(255,255,255,.65);color:#526079;font-size:.80rem;font-weight:650;white-space:nowrap;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.course-category-pill::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;border:1.5px solid #93a0b4;vertical-align:1px}
.course-category-pill:hover{border-color:rgba(67,97,238,.42);color:var(--wy-primary);background:rgba(255,255,255,.86)}
.course-category-pill.active{border-color:#3b82f6;background:rgba(239,246,255,.90);color:#1675e8;box-shadow:0 4px 14px rgba(59,130,246,.10)}
.course-category-pill.active::before{border-color:#1684ff;box-shadow:inset 0 0 0 2px #fff;background:#1684ff}
.course-picker-block{position:relative}
.course-search-picker{position:relative;z-index:20}
.course-search-control{position:relative;display:flex;align-items:center;border:1px solid rgba(148,163,184,.25);border-radius:13px;background:rgba(255,255,255,.68);transition:.16s}
.course-search-control:focus-within,.course-search-picker.open .course-search-control{border-color:rgba(67,97,238,.55);box-shadow:0 0 0 3px rgba(67,97,238,.09);background:rgba(255,255,255,.86)}
.course-search-control>svg{position:absolute;left:14px;width:18px;height:18px;fill:none;stroke:#8a97aa;stroke-width:1.8;pointer-events:none;z-index:1}
.course-search-control .form-control{border:0!important;background:transparent!important;box-shadow:none!important;padding-left:42px;padding-right:48px;min-height:48px}
.course-search-toggle{position:absolute;right:4px;top:4px;bottom:4px;width:40px;border:0;border-radius:9px;background:transparent;color:#7a8798;display:flex;align-items:center;justify-content:center}
.course-search-toggle:hover{background:rgba(67,97,238,.07);color:var(--wy-primary)}
.course-search-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.course-search-menu{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:1080;max-height:330px;overflow:auto;padding:8px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(255,255,255,.95);box-shadow:0 18px 44px rgba(20,35,70,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.course-search-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-radius:10px;background:transparent;text-align:left;color:#334155;font-size:.82rem}
.course-search-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-search-option small{flex:0 0 auto;color:#94a3b8;font-size:.68rem}
.course-search-option:hover,.course-search-option.active{background:rgba(67,97,238,.075);color:var(--wy-primary)}
.course-search-empty{padding:22px 14px;text-align:center;color:#8a96a8;font-size:.8rem}
.course-selected-meta{margin-top:18px}.course-id-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.course-selected-meta .form-control[readonly]{background:rgba(255,255,255,.52)}
.course-intro{margin-top:0!important;min-height:74px}

/* Classic profile hierarchy: superior first, then self. */
.profile-page-classic{display:flex;flex-direction:column;gap:0}
.profile-classic-card .card-body{padding:clamp(20px,2.5vw,34px)!important}
.profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px}.profile-section-head h2{margin:0;font-size:1.28rem;font-weight:850}
.profile-superior-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.8fr);gap:16px;align-items:stretch}
.profile-person-box{display:flex;align-items:center;gap:16px;padding:18px!important}.profile-person-meta{min-width:0;display:flex;flex-direction:column;gap:5px}.profile-person-meta strong{font-size:1.08rem}.profile-person-meta span{color:#738198;font-family:ui-monospace,monospace;word-break:break-all}
.profile-superior-notice{min-height:112px;padding:18px!important;white-space:pre-wrap;line-height:1.8;color:#435168}
.profile-avatar-circle{width:86px;height:86px;flex:0 0 86px;border-radius:50%!important;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(67,97,238,.14),rgba(34,211,238,.16));color:var(--wy-primary);font-size:1.7rem;font-weight:850}.profile-avatar-circle img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.profile-self-layout{display:grid;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:22px;align-items:start}
.profile-classic-summary{padding:22px!important;text-align:center}.profile-avatar-self{width:104px;height:104px;margin:0 auto 14px}.profile-summary-name{font-size:1.25rem;font-weight:850}.profile-summary-account{margin-top:4px;color:#748198;font-family:ui-monospace,monospace;word-break:break-all}.profile-summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.profile-summary-metrics>div{padding:12px;border-radius:12px;background:rgba(248,250,252,.58);text-align:left}.profile-summary-metrics span{display:block;color:#7c889b;font-size:.72rem}.profile-summary-metrics strong{display:block;margin-top:4px;font-size:1rem}
.profile-classic-form{min-width:0}

/* Dashboard recent orders use the same visual language as order management. */
.dashboard-recent-item{grid-template-columns:minmax(190px,1fr) auto 72px 145px;background:rgba(255,255,255,.48);border-color:rgba(255,255,255,.42);padding:12px 14px}
.dashboard-recent-status{display:flex;justify-content:center}.dashboard-progress-ring.progress-ring{width:56px!important;height:56px!important;flex:0 0 56px}.dashboard-progress-ring.progress-ring::after{width:42px!important;height:42px!important}.dashboard-progress-ring.progress-ring>span{font-size:.70rem!important}

@media (max-width:991.98px){
  .profile-superior-layout,.profile-self-layout{grid-template-columns:1fr}.profile-classic-summary{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;text-align:left}.profile-avatar-self{margin:0}.profile-summary-metrics{grid-column:1/-1;margin-top:0}
}
@media (max-width:767.98px){
  body.app-body .card,body.app-body .glass06{background:rgba(255,255,255,.74)!important;-webkit-backdrop-filter:blur(12px) saturate(115%)!important;backdrop-filter:blur(12px) saturate(115%)!important}
  .course-category-pills{padding:8px;gap:6px;margin-inline:-2px}.course-category-pill{padding:6px 11px;font-size:.74rem}.course-search-menu{max-height:44vh}.course-id-grid{grid-template-columns:1fr}.course-selected-meta{margin-top:14px}
  .profile-section-head{margin-bottom:15px}.profile-section-head h2{font-size:1.08rem}.profile-person-box{padding:14px!important}.profile-avatar-circle{width:66px;height:66px;flex-basis:66px}.profile-classic-summary{display:block;text-align:center}.profile-avatar-self{width:88px;height:88px;margin:0 auto 12px}.profile-summary-metrics{margin-top:16px}
  .dashboard-recent-item{grid-template-columns:minmax(0,1fr) auto 52px;gap:8px}.dashboard-recent-item time{display:none}.dashboard-progress-ring.progress-ring{width:48px!important;height:48px!important;flex-basis:48px}.dashboard-progress-ring.progress-ring::after{width:36px!important;height:36px!important}.dashboard-recent-status{justify-content:flex-end}
}

/* Glass details that were intentionally flattened in 4.6 are restored here. */
body.app-body .mode-card,
body.app-body .course-item,
body.app-body .app-topbar{
  -webkit-backdrop-filter:blur(14px) saturate(118%)!important;
  backdrop-filter:blur(14px) saturate(118%)!important;
}
body.app-body .mode-card{background:rgba(255,255,255,.54)!important;border-color:rgba(255,255,255,.46)!important}
body.app-body .mode-card.active{background:linear-gradient(135deg,rgba(88,124,255,.18),rgba(48,200,225,.10))!important;border-color:rgba(67,97,238,.42)!important}
body.app-body .course-item{background:rgba(255,255,255,.58)!important;border-color:rgba(255,255,255,.50)!important}
body.app-body .course-item.active{background:rgba(235,241,255,.76)!important;border-color:rgba(67,97,238,.48)!important}
body.app-body .app-topbar{background:rgba(244,248,255,.72)!important}

/* Shared order status primitives: used by both order management and dashboard. */
body.app-body .orders-status-badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:70px!important;
  padding:.38rem .72rem!important;border-radius:999px;font-size:.78rem!important;font-weight:750;color:#fff!important;
  line-height:1.2;white-space:nowrap;box-shadow:inset 0 1px rgba(255,255,255,.24);
}
body.app-body .progress-ring{--p:0;position:relative;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:conic-gradient(var(--wy-primary) calc(var(--p)*1%),rgba(67,97,238,.14) 0)!important}
body.app-body .progress-ring::after{content:"";position:absolute;inset:6px;border-radius:50%;background:rgba(255,255,255,.92)!important;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
body.app-body .progress-ring>span{position:relative;z-index:1;font-weight:750;color:#374151}


/* ===== Web 4.8 targeted corrections ===== */
/* Course step number and heading stay together; 4.7's space-between pushed them apart. */
body.endpoint-courses .section-title-row{
  justify-content:flex-start!important;
  gap:10px!important;
}
body.endpoint-courses .section-title-row h2{margin:0!important;}

/* Course metadata is always present; values change after a course is selected. */
body.endpoint-courses .course-selected-meta{display:block!important;}

/* Mobile bottom navigation is intentionally removed. */
.mobile-bottom-nav{display:none!important;}
@media (max-width:767.98px){
  .app-content{padding-bottom:20px!important;}
}

/* Simple operation pages use the same available content width as other pages. */
.compact-form-card{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;}
.endpoint-recharge_page .recharge-wrap>.row{margin-left:0!important;margin-right:0!important;}
.endpoint-recharge_page .recharge-wrap>.row>[class*="col-"]{
  width:100%!important;max-width:none!important;flex:0 0 100%!important;padding-left:0!important;padding-right:0!important;
}

/* Workbench progress layout is the original 4.6 horizontal bar again. */
.dashboard-recent-progress{display:flex;align-items:center;gap:8px;min-width:0;}
.dashboard-recent-progress>div{height:7px;flex:1;border-radius:99px;background:#e7edf8;overflow:hidden;}
.dashboard-recent-progress>div span{display:block;height:100%;background:linear-gradient(90deg,#4f6df5,#22c7df);}
.dashboard-recent-progress strong{font-size:.74rem;white-space:nowrap;}

/* Restore the 4.6 workbench recent-order geometry together with its horizontal progress bar. */
.dashboard-recent-item{
  grid-template-columns:minmax(190px,1.55fr) auto minmax(130px,.65fr) 145px!important;
  gap:13px!important;
}
@media (max-width:767.98px){
  .dashboard-recent-item{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:12px!important;}
  .dashboard-recent-progress{grid-column:1/-1!important;}
  .dashboard-recent-item time{display:none!important;}
}


/* Web 4.9 targeted layout corrections */
.page-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 16px;min-height:40px;flex-wrap:wrap}
.page-toolbar-end{justify-content:flex-end}
.app-footer{display:flex;justify-content:center;align-items:center;text-align:center;gap:0}

/* Authentication left panel: title in the upper-left, motto lower and centered. */
.endpoint-login .auth-brand-content,
.endpoint-register .auth-brand-content{height:100%;display:flex;flex-direction:column;align-items:stretch}
.endpoint-login .auth-panel-heading,
.endpoint-register .auth-panel-heading{margin:0!important;align-self:flex-start;text-align:left;font-size:clamp(1.9rem,2.5vw,2.8rem);line-height:1.08}
.endpoint-login .auth-panel-motto,
.endpoint-register .auth-panel-motto{margin:auto auto clamp(72px,12vh,130px);width:100%;text-align:center}
.endpoint-login .auth-panel-motto p,
.endpoint-register .auth-panel-motto p{margin:0;color:#fff;font-size:clamp(1.42rem,2vw,2rem);font-weight:850;line-height:1.32;letter-spacing:-.035em}
.endpoint-login .auth-panel-motto p span,
.endpoint-login .auth-panel-motto p strong,
.endpoint-register .auth-panel-motto p span,
.endpoint-register .auth-panel-motto p strong{display:block;color:inherit;font:inherit}
.endpoint-login .auth-panel-motto p strong,
.endpoint-register .auth-panel-motto p strong{margin-top:.16em;color:rgba(235,244,255,.80)}

@media (max-width:767.98px){
  .page-toolbar{margin-bottom:10px;min-height:34px}.page-toolbar-end{justify-content:flex-end}
  .endpoint-login .auth-panel-heading,.endpoint-register .auth-panel-heading{font-size:clamp(1.35rem,6vw,1.75rem)}
  .endpoint-login .auth-panel-motto,.endpoint-register .auth-panel-motto{margin:clamp(22px,7vw,34px) auto 0}
  .endpoint-login .auth-panel-motto p,.endpoint-register .auth-panel-motto p{font-size:clamp(1.05rem,4.8vw,1.35rem);line-height:1.35}
}

/* ========================================================================== 
   Auth refresh - keep existing wallpaper, update typography and controls only
   ========================================================================== */
.endpoint-login .auth-card,
.endpoint-register .auth-card{
  border:1px solid rgba(255,255,255,.68);
  background:rgba(246,249,255,.84);
  box-shadow:0 28px 80px rgba(15,31,67,.24);
  -webkit-backdrop-filter:blur(22px) saturate(118%);
  backdrop-filter:blur(22px) saturate(118%);
}
.endpoint-login .auth-form-panel,
.endpoint-register .auth-form-panel{
  background:linear-gradient(145deg,rgba(252,253,255,.94),rgba(242,247,255,.88));
}
.auth-heading-clean{margin-bottom:clamp(24px,3vw,34px)!important}
.auth-heading-clean .auth-heading-mark{
  display:inline-flex;align-items:center;gap:8px;
  margin-bottom:9px;color:#4d69ef;font-size:.73rem;font-weight:850;letter-spacing:.08em;
}
.auth-heading-clean .auth-heading-mark::before{
  content:"";width:18px;height:3px;border-radius:999px;background:linear-gradient(90deg,#4f6df5,#40bff2);
}
.auth-heading-clean h2{
  margin:0!important;color:#17233b;font-size:clamp(1.75rem,2.1vw,2.25rem)!important;
  font-weight:900!important;line-height:1.12;letter-spacing:-.045em;
}
.auth-heading-clean p{
  margin:8px 0 0!important;color:#7b879a!important;font-size:.82rem!important;line-height:1.55;
}
.auth-clean-form{display:flex;flex-direction:column;gap:0}
.auth-clean-field{margin-bottom:clamp(15px,1.8vw,19px)!important}
.auth-clean-label{
  display:block;margin:0 0 7px;color:#36435b;font-size:.78rem;font-weight:780;line-height:1.35;
}
.auth-clean-control{
  position:relative;display:flex;align-items:center;width:100%;min-height:52px;
  border:1px solid rgba(125,143,172,.24);border-radius:14px;
  background:rgba(255,255,255,.78);box-shadow:0 5px 18px rgba(50,72,116,.045);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease;
  overflow:hidden;
}
.auth-clean-control:focus-within{
  border-color:rgba(79,109,245,.72);background:rgba(255,255,255,.96);
  box-shadow:0 0 0 4px rgba(79,109,245,.10),0 10px 28px rgba(58,80,151,.08);
}
.auth-clean-icon{
  width:48px;min-width:48px;height:50px;display:inline-flex;align-items:center;justify-content:center;color:#8090aa;
}
.auth-clean-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.auth-clean-control .form-control{
  min-width:0;min-height:50px!important;height:50px!important;padding:0 12px 0 0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  color:#243149;font-size:.9rem;
}
.auth-clean-control .form-control::placeholder{color:#a4afc0}
.auth-clean-control .password-toggle-btn{
  align-self:stretch;min-width:48px!important;width:48px!important;height:auto!important;padding:0!important;
  border:0!important;border-left:1px solid rgba(148,163,184,.13)!important;border-radius:0!important;
  background:rgba(248,250,255,.62)!important;box-shadow:none!important;color:#7f8ca1!important;
}
.auth-clean-control .password-toggle-btn:hover{background:rgba(238,243,255,.88)!important;color:#4f6df5!important}
.auth-clean-control .password-toggle-btn svg{width:18px;height:18px}
.endpoint-login .auth-options{
  margin:1px 1px 18px;min-height:26px;color:#64748b;font-size:.77rem;
}
.endpoint-login .auth-options .form-check{display:flex;align-items:center;gap:7px;min-height:24px;margin:0;padding-left:0}
.endpoint-login .auth-options .form-check-input{
  position:static;float:none;margin:0;width:16px;height:16px;border-radius:5px;border-color:#bac5d5;box-shadow:none;
}
.endpoint-login .auth-options .form-check-input:checked{background-color:#4f6df5;border-color:#4f6df5}
.endpoint-login .auth-options .form-check-label{line-height:1.3}
.endpoint-login #login-submit,
.endpoint-register #register-submit{
  min-height:50px!important;border:0!important;border-radius:14px!important;
  background:linear-gradient(100deg,#5675ff,#4262ee)!important;
  box-shadow:0 12px 26px rgba(67,97,238,.24)!important;font-size:.9rem;font-weight:800;
}
.endpoint-login #login-submit:hover,
.endpoint-register #register-submit:hover{transform:translateY(-1px);box-shadow:0 15px 30px rgba(67,97,238,.30)!important}
.auth-switch{margin-top:18px!important;color:#8792a4!important;font-size:.78rem!important}
.auth-switch a{color:#4b67ed!important;font-weight:800!important;text-decoration:none}
.auth-switch a:hover{text-decoration:underline}
.endpoint-register .password-rules{
  margin-top:9px;padding:9px 11px;border-color:rgba(139,155,184,.16);border-radius:11px;
  background:rgba(241,245,252,.62);box-shadow:none;
}
.endpoint-register .password-rule{font-size:.67rem}
.endpoint-register .confirm-password-feedback{margin-top:5px;min-height:0;font-size:.68rem}
.endpoint-login #captcha-button,
.endpoint-register #captcha-button{
  height:48px!important;border-radius:13px!important;background:rgba(247,249,255,.68)!important;
}

@media (max-width:767.98px){
  .endpoint-login .auth-card,.endpoint-register .auth-card{
    border-radius:20px!important;background:rgba(247,250,255,.88);
    -webkit-backdrop-filter:blur(18px) saturate(112%);backdrop-filter:blur(18px) saturate(112%);
  }
  .endpoint-login .auth-brand-panel,.endpoint-register .auth-brand-panel{
    padding:18px 20px!important;
  }
  .endpoint-login .auth-form-panel,.endpoint-register .auth-form-panel{padding:24px 20px 27px!important}
  .auth-heading-clean{margin-bottom:20px!important}
  .auth-heading-clean h2{font-size:1.62rem!important}
  .auth-heading-clean p{font-size:.76rem!important}
  .auth-clean-field{margin-bottom:14px!important}
  .auth-clean-control{min-height:48px;border-radius:13px}
  .auth-clean-icon{width:44px;min-width:44px;height:46px}
  .auth-clean-control .form-control{height:46px!important;min-height:46px!important;font-size:.86rem}
  .auth-clean-control .password-toggle-btn{width:45px!important;min-width:45px!important}
  .endpoint-login #login-submit,.endpoint-register #register-submit{min-height:48px!important;border-radius:13px!important}
}

/* Course query student summary alignment */
.query-student-summary{align-items:center!important;line-height:1.25}
.query-student-summary>span{display:inline-flex;align-items:center;min-height:1.55em}
.query-success-text{vertical-align:middle}


/* ===== Web 4.9.6 targeted UI corrections ===== */
/* Larger persistent page title in the logged-in top bar. */
body.is-authenticated .topbar-title{
  font-size:clamp(1.18rem,1.04rem + .34vw,1.46rem)!important;
  line-height:1.15!important;
  font-weight:850!important;
  letter-spacing:-.025em;
}

/* Login/register: keep the existing wallpaper, but separate the copy and the form card. */
.endpoint-login .auth-shell,
.endpoint-register .auth-shell{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-items:center!important;
  justify-items:center!important;
  padding:clamp(28px,5vh,58px) clamp(24px,7vw,110px) max(clamp(14px,2vh,22px),env(safe-area-inset-bottom))!important;
}
.endpoint-login .auth-standalone-layout,
.endpoint-register .auth-standalone-layout{
  width:min(1180px,100%);
  min-height:min(610px,calc(100dvh - var(--wy-guest-header-height) - 120px));
  display:grid;
  grid-template-columns:minmax(300px,1fr) minmax(360px,430px);
  align-items:center;
  gap:clamp(58px,9vw,150px);
}
.endpoint-login .auth-standalone-copy,
.endpoint-register .auth-standalone-copy{
  align-self:center;
  min-width:0;
  padding:clamp(8px,1vw,18px);
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  color:#fff;
}
.endpoint-login .auth-standalone-copy .auth-brand-content,
.endpoint-register .auth-standalone-copy .auth-brand-content{
  height:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:clamp(16px,2vw,24px)!important;
}
.endpoint-login .auth-standalone-copy .auth-panel-heading,
.endpoint-register .auth-standalone-copy .auth-panel-heading{
  margin:0!important;
  color:#fff!important;
  font-size:clamp(2.1rem,3.2vw,3.5rem)!important;
  font-weight:900!important;
  line-height:1.05!important;
  letter-spacing:-.05em!important;
  text-shadow:0 6px 24px rgba(8,20,48,.24);
}
.endpoint-login .auth-standalone-copy .auth-panel-motto,
.endpoint-register .auth-standalone-copy .auth-panel-motto{
  width:auto!important;
  max-width:31rem!important;
  margin:0!important;
  text-align:left!important;
}
.endpoint-login .auth-standalone-copy .auth-panel-motto p,
.endpoint-register .auth-standalone-copy .auth-panel-motto p{
  display:flex!important;
  flex-direction:column!important;
  gap:.18em!important;
  margin:0!important;
  color:rgba(255,255,255,.90)!important;
  font-size:clamp(1rem,1.15vw,1.2rem)!important;
  font-weight:650!important;
  line-height:1.55!important;
  letter-spacing:0!important;
  text-shadow:0 4px 18px rgba(8,20,48,.22);
}
.endpoint-login .auth-standalone-copy .auth-panel-motto p span,
.endpoint-login .auth-standalone-copy .auth-panel-motto p strong,
.endpoint-register .auth-standalone-copy .auth-panel-motto p span,
.endpoint-register .auth-standalone-copy .auth-panel-motto p strong{
  display:block!important;
  margin:0!important;
  color:inherit!important;
  font:inherit!important;
}
.endpoint-login .auth-standalone-card,
.endpoint-register .auth-standalone-card{
  width:100%;
  min-height:0!important;
  padding:clamp(30px,3.4vw,44px)!important;
  display:flex!important;
  align-items:center!important;
  border:1px solid rgba(255,255,255,.68)!important;
  border-radius:22px!important;
  background:rgba(250,252,255,.83)!important;
  -webkit-backdrop-filter:blur(18px) saturate(112%)!important;
  backdrop-filter:blur(18px) saturate(112%)!important;
  box-shadow:0 24px 65px rgba(18,35,74,.18)!important;
  overflow:visible!important;
}
.endpoint-login .auth-standalone-card .auth-form-wrap,
.endpoint-register .auth-standalone-card .auth-form-wrap{
  width:100%;
  max-width:none!important;
  margin:0!important;
}
.endpoint-login .auth-heading-clean,
.endpoint-register .auth-heading-clean{
  margin-bottom:24px!important;
}
.endpoint-login .auth-heading-clean .auth-heading-mark,
.endpoint-register .auth-heading-clean .auth-heading-mark{
  margin-bottom:6px!important;
  color:#536ff1!important;
  font-size:.72rem!important;
  letter-spacing:.12em!important;
}
.endpoint-login .auth-heading-clean h2,
.endpoint-register .auth-heading-clean h2{
  font-size:clamp(1.65rem,2vw,2rem)!important;
}
.endpoint-login .auth-heading-clean p,
.endpoint-register .auth-heading-clean p{
  font-size:.82rem!important;
}

@media (max-width:767.98px){
  body.is-authenticated .topbar-title{font-size:1.12rem!important}
  .endpoint-login .auth-shell,
  .endpoint-register .auth-shell{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    padding:clamp(18px,5vw,28px) clamp(14px,4vw,18px) max(14px,env(safe-area-inset-bottom))!important;
  }
  .endpoint-login .auth-standalone-layout,
  .endpoint-register .auth-standalone-layout{
    width:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    gap:clamp(18px,5vw,26px);
  }
  .endpoint-login .auth-standalone-copy,
  .endpoint-register .auth-standalone-copy{
    padding:clamp(10px,3vw,16px) clamp(6px,2vw,10px) 0;
  }
  .endpoint-login .auth-standalone-copy .auth-brand-content,
  .endpoint-register .auth-standalone-copy .auth-brand-content{gap:9px!important}
  .endpoint-login .auth-standalone-copy .auth-panel-heading,
  .endpoint-register .auth-standalone-copy .auth-panel-heading{
    font-size:clamp(1.75rem,8vw,2.35rem)!important;
  }
  .endpoint-login .auth-standalone-copy .auth-panel-motto p,
  .endpoint-register .auth-standalone-copy .auth-panel-motto p{
    font-size:clamp(.88rem,3.8vw,1rem)!important;
    line-height:1.45!important;
  }
  .endpoint-login .auth-standalone-card,
  .endpoint-register .auth-standalone-card{
    padding:clamp(24px,6vw,30px) clamp(18px,5vw,24px)!important;
    border-radius:20px!important;
  }
}


/* 4.9.6 auth standalone refinement: no guest bar, no leading field icons. */
.endpoint-login .guest-header,
.endpoint-register .guest-header{display:none!important}
.endpoint-login .guest-content,
.endpoint-register .guest-content{min-height:100dvh!important}
.endpoint-login .auth-shell,
.endpoint-register .auth-shell{min-height:100dvh!important}
.endpoint-login .auth-clean-icon,
.endpoint-register .auth-clean-icon{display:none!important}
.endpoint-login .auth-clean-control .form-control,
.endpoint-register .auth-clean-control .form-control{
  padding-left:15px!important;
}
.endpoint-login .auth-heading-clean h2,
.endpoint-register .auth-heading-clean h2{
  margin:0!important;
  color:#172033!important;
  font-size:clamp(1.65rem,2vw,2rem)!important;
  font-weight:850!important;
}
.endpoint-login .auth-heading-clean,
.endpoint-register .auth-heading-clean{margin-bottom:22px!important}
@media (max-width:767.98px){
  .endpoint-login .guest-content,
  .endpoint-register .guest-content,
  .endpoint-login .auth-shell,
  .endpoint-register .auth-shell{min-height:100dvh!important}
}


/* ===== Web 4.9.7 public auth visual unification =====
   Login/register now reuse the landing page header and dark glass overlay. */
.endpoint-login .app-background-image,
.endpoint-register .app-background-image{
  background-position:center center;
}
.endpoint-login .app-background-gradient,
.endpoint-register .app-background-gradient{
  background:
    linear-gradient(90deg,rgba(16,29,57,.68) 0%,rgba(23,42,80,.43) 38%,rgba(32,68,118,.12) 66%,rgba(255,255,255,.09) 100%),
    linear-gradient(to bottom,rgba(9,20,44,.08),rgba(21,46,82,.25));
}
.endpoint-login .guest-header,
.endpoint-register .guest-header{
  display:flex!important;
}
.endpoint-login .guest-content,
.endpoint-register .guest-content{
  min-height:calc(100dvh - var(--wy-guest-header-height))!important;
}
.endpoint-login .auth-shell,
.endpoint-register .auth-shell{
  min-height:calc(100dvh - var(--wy-guest-header-height))!important;
}
@media (max-width:767.98px){
  .endpoint-login .guest-content,
  .endpoint-register .guest-content,
  .endpoint-login .auth-shell,
  .endpoint-register .auth-shell{
    min-height:calc(100dvh - var(--wy-guest-header-height))!important;
  }
}

/* ===== Web 4.9.8 mobile auth cleanup =====
   On phones, remove the decorative welcome copy so the login/register form is the only focal content. */
@media (max-width:767.98px){
  .endpoint-login .auth-standalone-copy,
  .endpoint-register .auth-standalone-copy{
    display:none!important;
  }
  .endpoint-login .auth-standalone-layout,
  .endpoint-register .auth-standalone-layout{
    gap:0!important;
  }
}

/* ===== Web 4.9.11 mobile course picker =====
   Mobile uses a bottom sheet so simply choosing a course never summons the keyboard.
   Search stays available inside the sheet and only opens the keyboard after the user taps it. */
.mobile-course-sheet{display:none}
@media (max-width:767.98px){
  body.mobile-course-sheet-open{overflow:hidden!important;touch-action:none}
  .course-search-control .form-control[readonly]{cursor:pointer;caret-color:transparent;user-select:none;-webkit-user-select:none}
  .course-search-control .form-control[readonly]::selection{background:transparent}
  .course-search-menu{display:none!important}
  .mobile-course-sheet[hidden]{display:none!important}
  .mobile-course-sheet{display:block;position:fixed;inset:0;z-index:2500}
  .mobile-course-sheet-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:rgba(15,23,42,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .mobile-course-sheet-panel{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;max-height:min(76dvh,680px);min-height:42dvh;padding:0 14px calc(14px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:rgba(250,252,255,.98);box-shadow:0 -20px 55px rgba(15,23,42,.22);overflow:hidden;animation:wy-course-sheet-up .18s ease-out}
  .mobile-course-sheet-panel::before{content:"";width:38px;height:4px;margin:8px auto 2px;border-radius:99px;background:#cbd5e1;flex:0 0 auto}
  .mobile-course-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px 12px;flex:0 0 auto}
  .mobile-course-sheet-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
  .mobile-course-sheet-head strong{font-size:1.03rem;color:#1e293b}
  .mobile-course-sheet-head span{font-size:.72rem;color:#8793a5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-course-sheet-close{width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:#edf2f8;color:#64748b}
  .mobile-course-sheet-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
  .mobile-course-sheet-search{position:relative;display:flex;align-items:center;margin-bottom:10px;flex:0 0 auto}
  .mobile-course-sheet-search>svg{position:absolute;left:13px;width:18px;height:18px;fill:none;stroke:#8a97aa;stroke-width:1.8;pointer-events:none}
  .mobile-course-sheet-search .form-control{min-height:46px;padding-left:40px!important;border-radius:13px!important;background:#f3f6fa!important;border:1px solid #e3e9f1!important;box-shadow:none!important;font-size:16px!important}
  .mobile-course-sheet-search .form-control:focus{background:#fff!important;border-color:rgba(67,97,238,.48)!important;box-shadow:0 0 0 3px rgba(67,97,238,.08)!important}
  .mobile-course-sheet-results{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 0 6px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch}
  .mobile-course-sheet-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:10px 12px;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left;color:#334155}
  .mobile-course-sheet-option span{min-width:0;font-size:.82rem;line-height:1.45;white-space:normal;word-break:break-word}
  .mobile-course-sheet-option small{flex:0 0 auto;color:#94a3b8;font-size:.66rem}
  .mobile-course-sheet-option:active{background:#eef3fb}
  .mobile-course-sheet-option.active{background:#eef3ff;border-color:rgba(67,97,238,.20);color:#3456d1;font-weight:700}
  .mobile-course-sheet-empty{padding:28px 10px;text-align:center;color:#8a96a8;font-size:.8rem}
}
@keyframes wy-course-sheet-up{from{transform:translateY(18px);opacity:.72}to{transform:translateY(0);opacity:1}}


/* ===== Web 4.9.12 picker interaction + stacking corrections =====
   Category chips only filter. The course picker opens only from the course-name control.
   On desktop, keep the dropdown above the following “填写下单信息” glass card. */
@media (min-width:768px){
  body.endpoint-courses .course-select-section{position:relative!important;z-index:60!important;overflow:visible!important}
  body.endpoint-courses .course-select-section>.card-body{position:relative;overflow:visible!important}
  body.endpoint-courses .course-search-picker{z-index:70!important}
  body.endpoint-courses .course-search-picker.open{z-index:2200!important}
  body.endpoint-courses .course-search-menu{z-index:2210!important}
  body.endpoint-courses .course-student-section,
  body.endpoint-courses .course-result-section,
  body.endpoint-courses .course-batch-section{position:relative;z-index:1}
}

/* Online recharge notice requested for accounts that can enter the recharge UI. */
.endpoint-recharge_page .recharge-unavailable-tip{
  display:flex;align-items:center;justify-content:center;min-height:52px;margin-bottom:20px;
  border:1px solid rgba(245,158,11,.22)!important;border-radius:14px!important;
  background:rgba(255,247,237,.84)!important;color:#9a5a08!important;text-align:center;
}

/* ===== Web 4.9.18 course advanced-parameter panel =====
   The compact row follows the supplied reference. The dialog is two-column on
   desktop and becomes a touch-friendly single-column sheet on phones. */
body.endpoint-courses .advanced-config-card[hidden],
body.endpoint-courses .advanced-config-modal[hidden]{display:none!important}
body.endpoint-courses .advanced-config-card{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  width:100%;margin-top:14px;padding:12px 14px;border:1px solid rgba(148,163,184,.20);
  border-radius:10px;background:rgba(255,255,255,.72);box-shadow:0 3px 12px rgba(15,23,42,.025)
}
body.endpoint-courses .advanced-config-card-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
body.endpoint-courses .advanced-config-card-title{color:#1f2d47;font-size:.82rem;font-weight:850;line-height:1.35}
body.endpoint-courses .advanced-config-card-summary{color:#8a96a8;font-size:.72rem;line-height:1.4}
body.endpoint-courses .advanced-config-open{flex:0 0 auto;min-width:74px;min-height:36px;padding:7px 13px;border-radius:7px;font-size:.74rem;font-weight:750}
body.advanced-config-modal-open{overflow:hidden!important}
body.endpoint-courses .advanced-config-modal{
  position:fixed;inset:0;z-index:4200;display:flex;align-items:center;justify-content:center;padding:18px
}
body.endpoint-courses .advanced-config-backdrop{
  position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:rgba(15,23,42,.48);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)
}
body.endpoint-courses .advanced-config-panel{
  position:relative;z-index:1;width:min(790px,100%);max-height:min(92dvh,820px);display:flex;flex-direction:column;
  overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:13px;background:#fff;
  box-shadow:0 28px 78px rgba(15,23,42,.28);outline:none;animation:wy-advanced-dialog-in .16s ease-out
}
body.endpoint-courses .advanced-config-modal-head{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px
}
body.endpoint-courses .advanced-config-modal-head>div{min-width:0;display:flex;align-items:baseline;gap:10px}
body.endpoint-courses .advanced-config-modal-head strong{color:#17233a;font-size:.9rem;font-weight:850}
body.endpoint-courses .advanced-config-modal-head span{min-width:0;color:#93a0b2;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.endpoint-courses .advanced-config-modal-body{
  min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px;padding:0 16px 14px;overflow:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch
}
body.endpoint-courses .advanced-config-column{
  min-width:0;padding:11px;border:1px solid #e5e9f0;border-radius:6px;background:#fff
}
body.endpoint-courses .advanced-config-column-title{
  margin-bottom:10px;padding:0 0 8px;color:#1f2d47;font-size:.76rem;font-weight:850;border-bottom:1.5px solid #3f9df5
}
body.endpoint-courses .advanced-config-switches-column .advanced-config-column-title{border-bottom-color:#62be55}
body.endpoint-courses .advanced-config-param-list{display:flex;flex-direction:column;gap:10px}
body.endpoint-courses .advanced-config-param-item{display:flex;flex-direction:column;gap:6px}
body.endpoint-courses .advanced-config-field-label{margin:0;color:#25334b;font-size:.72rem;font-weight:650;line-height:1.45}
body.endpoint-courses .advanced-config-input{
  min-height:39px!important;padding:8px 11px!important;border:1px solid #d4dce8!important;border-radius:6px!important;
  background:#fff!important;color:#52617a!important;font-size:.77rem!important;box-shadow:none!important
}
body.endpoint-courses .advanced-config-input:focus{border-color:#5da8f4!important;box-shadow:0 0 0 3px rgba(63,157,245,.10)!important}
body.endpoint-courses .advanced-config-choice-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
body.endpoint-courses .advanced-config-choice{
  min-height:40px;border:0;border-radius:6px;padding:8px 10px;background:#f6f7f9;color:#26344d;font-size:.75rem;transition:.14s
}
body.endpoint-courses .advanced-config-choice:hover{background:#edf4fc}
body.endpoint-courses .advanced-config-choice.active{background:#359bf4;color:#fff;font-weight:750;box-shadow:0 6px 14px rgba(53,155,244,.18)}
body.endpoint-courses .advanced-config-switch-list{display:flex;flex-direction:column;gap:6px}
body.endpoint-courses .advanced-config-switch-row{
  min-height:37px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:7px 9px;
  border-radius:6px;background:#f3f5f8;color:#26344d;font-size:.73rem;line-height:1.35;cursor:pointer;transition:.14s
}
body.endpoint-courses .advanced-config-switch-row.is-on{background:#dff2d5}
body.endpoint-courses .advanced-config-switch-row>span:first-child{min-width:0;word-break:break-word}
body.endpoint-courses .advanced-config-switch-check{position:relative;width:22px;height:22px;flex:0 0 22px}
body.endpoint-courses .advanced-config-switch-check input{position:absolute;opacity:0;pointer-events:none}
body.endpoint-courses .advanced-config-switch-check>span{
  position:absolute;inset:0;border:1px solid #d2dae6;border-radius:6px;background:#f7f9fc;transition:.14s
}
body.endpoint-courses .advanced-config-switch-check>span::after{
  content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid transparent;border-width:0 2px 2px 0;transform:rotate(45deg)
}
body.endpoint-courses .advanced-config-switch-check input:checked+span{border-color:#349af4;background:#349af4}
body.endpoint-courses .advanced-config-switch-check input:checked+span::after{border-color:#fff}
body.endpoint-courses .advanced-config-switch-check input:focus-visible+span{box-shadow:0 0 0 3px rgba(52,154,244,.18)}
body.endpoint-courses .advanced-config-empty{padding:28px 10px;text-align:center;color:#97a3b4;font-size:.73rem}
body.endpoint-courses .advanced-config-modal-actions{
  flex:0 0 auto;display:flex;justify-content:flex-end;gap:7px;padding:0 16px 14px;background:#fff
}
body.endpoint-courses .advanced-config-modal-actions .btn{min-width:64px;min-height:40px;border-radius:7px;font-size:.75rem}
@keyframes wy-advanced-dialog-in{from{opacity:.68;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}

@media (max-width:767.98px){
  body.endpoint-courses .advanced-config-card{margin-top:12px;padding:12px;gap:12px}
  body.endpoint-courses .advanced-config-card-title{font-size:.8rem}
  body.endpoint-courses .advanced-config-card-summary{font-size:.7rem}
  body.endpoint-courses .advanced-config-open{min-width:76px;min-height:40px;padding:8px 12px;font-size:.76rem}
  body.endpoint-courses .advanced-config-modal{align-items:flex-end;padding:0}
  body.endpoint-courses .advanced-config-panel{
    width:100%;max-height:94dvh;border-radius:20px 20px 0 0;border-bottom:0;
    box-shadow:0 -22px 58px rgba(15,23,42,.26);animation:wy-advanced-sheet-up .18s ease-out
  }
  body.endpoint-courses .advanced-config-panel::before{
    content:"";width:38px;height:4px;flex:0 0 auto;margin:8px auto 1px;border-radius:99px;background:#cbd5e1
  }
  body.endpoint-courses .advanced-config-modal-head{padding:10px 14px 11px}
  body.endpoint-courses .advanced-config-modal-head>div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
  body.endpoint-courses .advanced-config-modal-head strong{font-size:1rem}
  body.endpoint-courses .advanced-config-modal-head span{max-width:76vw;font-size:.72rem}
  body.endpoint-courses .advanced-config-modal-body{display:flex;flex-direction:column;gap:11px;padding:0 12px 12px}
  body.endpoint-courses .advanced-config-column{padding:11px;border-radius:10px}
  body.endpoint-courses .advanced-config-column-title{font-size:.78rem}
  body.endpoint-courses .advanced-config-field-label{font-size:.76rem}
  body.endpoint-courses .advanced-config-input{min-height:46px!important;font-size:16px!important;border-radius:9px!important}
  body.endpoint-courses .advanced-config-choice{min-height:46px;font-size:.8rem;border-radius:9px}
  body.endpoint-courses .advanced-config-switch-row{min-height:46px;padding:9px 11px;border-radius:9px;font-size:.78rem}
  body.endpoint-courses .advanced-config-switch-check{width:24px;height:24px;flex-basis:24px}
  body.endpoint-courses .advanced-config-switch-check>span::after{left:8px;top:4px}
  body.endpoint-courses .advanced-config-modal-actions{
    position:sticky;bottom:0;z-index:2;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid #eef1f5;box-shadow:0 -8px 20px rgba(15,23,42,.045)
  }
  body.endpoint-courses .advanced-config-modal-actions .btn{flex:1;min-height:46px;font-size:.82rem}
}
@media (max-width:380px){
  body.endpoint-courses .advanced-config-card{align-items:flex-start}
  body.endpoint-courses .advanced-config-card-copy{padding-top:2px}
  body.endpoint-courses .advanced-config-open{min-width:70px;padding-inline:9px}
}
@keyframes wy-advanced-sheet-up{from{transform:translateY(22px);opacity:.76}to{transform:none;opacity:1}}
