@layer auth {
/* Unified authentication UI — canonical component styles. */

/* Shared auth primitives. Legacy global .field/.auth-row rules explicitly exclude these components. */
.pro-auth-form{display:grid;gap:8px;}
.auth-row{display:flex;justify-content:space-between;align-items:center;margin:3px 0 12px;font-size:var(--ed-font-md);}
.auth-row a,.auth-switch a,.portal-switcher a{color:var(--ed-primary);font-weight:700;}
.check-line{display:flex;align-items:center;gap:6px;}
.auth-switch{text-align:center;margin:17px 0 0;}
.portal-switcher{border-top:1px solid var(--ed-border);margin-top:18px;padding-top:14px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:var(--ed-font-md);}.portal-switcher span{color:var(--ed-muted);}
.auth-security{display:flex;align-items:center;gap:7px;color:#8a909a;font-size:var(--ed-font-sm);margin-top:14px;}.auth-security .ui-icon{width:16px;}
.portal-cards{display:grid;gap:10px;}.portal-cards>a{display:grid;grid-template-columns:46px 1fr 22px;align-items:center;gap:12px;border:1px solid var(--ed-border);border-radius:12px;padding:13px;color:#20242c;}.portal-cards>a>span{width:46px;height:46px;border-radius:12px;background:var(--ed-primary-soft);color:var(--ed-primary);display:grid;place-items:center;}.portal-cards b{display:block;}.portal-cards small{color:var(--ed-muted);}.portal-cards>a>.ui-icon{transform:rotate(180deg);color:#9ba2ad;}.portal-cards>a:hover{border-color:#aac0ff;background:#fbfcff;}
.terms-line{display:flex;gap:8px;align-items:flex-start;margin:0;background:#f8f9fb;border:1px solid #e4e7ec;padding:11px;border-radius:10px;font-size:var(--ed-font-md);color:#475467;}.password-strength{height:10px;background:#e2e8f0;border-radius:999px;margin:3px 0 14px;position:relative;overflow:hidden;}.password-strength span{position:absolute;right:0;top:0;bottom:0;width:20%;background:#ef4444;border-radius:999px;transition:.2s;}.password-strength small{position:absolute;top:13px;right:0;color:#64748b;font-size:var(--ed-font-sm);}.password-strength[data-score="2"] span{width:50%;background:#f59e0b;}.password-strength[data-score="3"] span{width:75%;background:#06b6d4;}.password-strength[data-score="4"] span{width:100%;background:#10b981;}

/* Standalone login/register pages. */
.auth-popup-page{min-height:100vh;overflow:auto;background:linear-gradient(135deg,#eef4ff 0,#f7f9fd 45%,#eef8f6 100%);}
.auth-popup-backdrop{position:fixed;inset:0;background:radial-gradient(circle at 20% 15%,rgba(36,87,230,.09),transparent 32%),radial-gradient(circle at 80% 82%,rgba(14,159,110,.07),transparent 30%);pointer-events:none;}
.auth-popup-stage{position:relative;z-index:1;padding:22px 14px;min-height:100dvh;}
.auth-popup-card{position:relative;width:min(620px,100%);padding:22px 26px 26px;border-radius:24px;box-shadow:0 24px 70px rgba(15,23,42,.13);border:1px solid rgba(218,226,238,.9);}
.auth-popup-card-topbar{display:flex;align-items:center;justify-content:flex-end;min-height:42px;margin-bottom:4px;}
.auth-popup-close,.auth-popup-back{position:static;width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #dbe3ef;color:#111827;text-decoration:none;font:inherit;font-size:26px;line-height:1;box-shadow:0 8px 22px rgba(15,23,42,.14);z-index:3;cursor:pointer}.auth-popup-back svg{width:20px;height:20px}.auth-popup-close[hidden],.auth-popup-back[hidden]{display:none}
.auth-popup-page .auth-logo,.auth-popup-page .auth-security{display:none;}
.auth-compact-head{margin-bottom:14px;text-align:center;}.auth-compact-head h1,.auth-compact-head h2{font-size:24px;margin:0 0 5px;}.auth-compact-head p{font-size:var(--ed-font-md);line-height:1.7;margin:0;color:#6e7480;}

/* Compact forms without reserved empty-error space or unrelated field margins. */
.pro-auth-form.auth-login-compact{gap:6px;}.pro-auth-form.auth-register-compact,.pro-auth-form.auth-recovery-form{gap:7px;}
.auth-compact-field{position:relative;margin:0;display:grid;gap:4px;min-width:0;}
.auth-compact-field>.auth-field-label,.auth-register-field>label{display:block;margin:0;text-align:right;color:#667085;font-size:var(--ed-font-sm);font-weight:800;line-height:1.55;}
.auth-compact-field .input-with-icon{position:relative;display:block;}
.auth-compact-field .input-with-icon>.auth-field-icon{position:absolute;right:14px;left:auto;top:50%;transform:translateY(-50%);color:#667085;display:grid;place-items:center;width:22px;height:22px;z-index:2;pointer-events:none;}
.auth-compact-field .input-with-icon>.auth-field-icon .ui-icon{width:20px;height:20px;}
.auth-compact-field .input-with-icon>input{width:100%;min-height:50px;padding:10px 46px 10px 14px;background:#f8faff;border:1px solid #dfe5ee;border-radius:12px;line-height:normal;}
.auth-compact-field .input-with-icon>input::placeholder{opacity:.62;}
.pro-auth-form .auth-field-error:empty{display:none;min-height:0;margin:0;padding:0;}
.pro-auth-form .auth-field-error:not(:empty){display:block;margin:2px 0 0;}
.auth-register-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;}
.auth-register-field{margin:0;display:grid;gap:4px;min-width:0;}
.auth-register-field select{width:100%;min-height:50px;border:1px solid #dfe5ee;border-radius:12px;background:#f8faff;padding:8px 10px;}

/* Login remember/forgot row must always stay on one line. */
.auth-row-compact{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;min-height:22px;margin:0 0 6px;padding:0;direction:rtl;flex-flow:row nowrap;}
.auth-row-compact .check-line{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;width:auto;min-width:0;white-space:nowrap;margin:0;padding:0;line-height:22px;}
.auth-row-compact .check-line input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-width:18px;min-height:18px;margin:0;border:1.5px solid #aab4c3;border-radius:6px;background:#fff;display:grid;place-items:center;cursor:pointer;}
.auth-row-compact .check-line input[type="checkbox"]:checked{background:#2457e6;border-color:#2457e6;}.auth-row-compact .check-line input[type="checkbox"]:checked:after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px);}
.auth-row-compact>a{display:inline-flex;align-items:center;justify-content:flex-end;margin:0;padding:0;white-space:nowrap;text-decoration:none;}.auth-otp-remember{justify-content:flex-start;}
.auth-otp-compact{padding:10px;margin:0;border-radius:13px;}.auth-terms-compact{margin:0;min-height:44px;padding:9px 11px;align-items:center;}

/* Homepage authentication modal with isolated sizing and padding. */
.auth-modal.open{z-index:16000;align-items:center;justify-content:center;overflow:hidden;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));}
.auth-popup-modal-box{position:relative;width:min(620px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:16px 24px 24px;border-radius:24px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #dbe3ef;box-shadow:0 28px 90px rgba(0,0,0,.24);color:#111827;text-align:right;}
.auth-popup-modal-topbar{display:flex;align-items:center;justify-content:flex-end;min-height:42px;margin-bottom:6px;}
.auth-popup-modal-close,.auth-popup-modal-back{position:static;width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1px solid #dbe3ef;box-shadow:0 8px 22px rgba(15,23,42,.13);color:#111827;font:inherit;font-size:24px;line-height:1;cursor:pointer}.auth-popup-modal-back svg{width:20px;height:20px}.auth-popup-modal-back[hidden],.auth-popup-modal-close[hidden]{display:none}
.auth-popup-modal-box .auth-modal-tabs{margin:0 0 12px;gap:6px;}.auth-popup-modal-box .auth-modal-tabs button{min-height:40px;}.auth-popup-modal-box .auth-divider{margin:10px 0;}.auth-back-login{border:0;background:transparent;color:#2457e6;font:inherit;font-weight:800;display:block;margin:12px auto 0;cursor:pointer;}
.recovery-channel-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.recovery-channel-grid.compact label span{min-height:42px;padding:8px 10px;}

html.unified-dark .auth-popup-card,body.dark-ui .auth-popup-card,html.unified-dark .auth-popup-modal-box,body.dark-ui .auth-popup-modal-box{background:#111827;border-color:#273244;color:#f8fafc;}
html.unified-dark .auth-popup-card-topbar,html.unified-dark .auth-popup-modal-topbar,body.dark-ui .auth-popup-card-topbar,body.dark-ui .auth-popup-modal-topbar{background:transparent;}
html.unified-dark .auth-compact-head p,body.dark-ui .auth-compact-head p{color:#98a2b3;}
html.unified-dark .auth-compact-field .input-with-icon>input,html.unified-dark .auth-register-field select,body.dark-ui .auth-compact-field .input-with-icon>input,body.dark-ui .auth-register-field select{background:#0f172a;border-color:#344054;color:#f8fafc;}
html.unified-dark .auth-row-compact .check-line input[type="checkbox"],body.dark-ui .auth-row-compact .check-line input[type="checkbox"]{background:#0f172a;border-color:#667085;}
html.unified-dark .auth-row-compact .check-line input[type="checkbox"]:checked,body.dark-ui .auth-row-compact .check-line input[type="checkbox"]:checked{background:#2457e6;border-color:#2457e6;}
html.unified-dark .auth-popup-modal-close,html.unified-dark .auth-popup-modal-back,html.unified-dark .auth-popup-close,html.unified-dark .auth-popup-back,body.dark-ui .auth-popup-modal-close,body.dark-ui .auth-popup-modal-back,body.dark-ui .auth-popup-close,body.dark-ui .auth-popup-back{background:#0f172a;border-color:#344054;color:#f8fafc;}

@media(max-width:680px){
  .auth-popup-stage{padding:10px;align-items:center;justify-content:center;}
  .auth-popup-card{padding:15px 14px 18px;border-radius:20px;}
  .auth-popup-card-topbar{min-height:38px;margin-bottom:2px;}
  .auth-popup-close,.auth-popup-back{width:38px;height:38px;flex-basis:38px;font-size:23px;}
  .auth-compact-head{margin-bottom:11px;}.auth-compact-head h1,.auth-compact-head h2{font-size:21px;}
  .auth-register-row{grid-template-columns:1fr;gap:7px;}
  .pro-auth-form.auth-register-compact{gap:7px;}
  .auth-modal.open{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));}
  .auth-popup-modal-box{width:calc(100vw - 20px);max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);padding:12px 14px 16px;border-radius:20px;}
  .auth-popup-modal-topbar{min-height:38px;margin-bottom:5px;}
  .auth-popup-modal-close,.auth-popup-modal-back{width:38px;height:38px;flex-basis:38px;font-size:22px;}
  .auth-popup-modal-box .auth-modal-tabs{margin-bottom:10px;}
  .auth-row-compact{gap:7px;font-size:var(--ed-font-xs);}
  .auth-row-compact .check-line,.auth-row-compact>a{font-size:var(--ed-font-xs);}
  .auth-compact-field .input-with-icon>input,.auth-register-field select{min-height:48px;}
  .recovery-channel-grid.compact{grid-template-columns:1fr 1fr;}
}
@media(max-width:420px){
  .auth-row-compact{gap:5px;}
  .auth-row-compact .check-line,.auth-row-compact>a{font-size:var(--ed-font-xs);}
}
}

.public-info-page{min-height:60vh;background:var(--ed-page-bg,#f6f8fc);color:var(--ed-text,#111827);}.public-info-hero{text-align:center;display:grid;gap:14px;justify-items:center;}.public-info-hero h1{margin:0;font-size:clamp(30px,4vw,52px);}.public-info-hero p{max-width:850px;margin:0;color:var(--ed-muted,#667085);line-height:2;}.public-info-section{padding-top:8px;}.public-info-card{background:var(--ed-surface,#fff);border:1px solid var(--ed-border,#e2e8f0);border-radius:18px;padding:22px;display:grid;gap:10px;color:var(--ed-text,#111827);}.public-info-card p{margin:0;color:var(--ed-muted,#667085);line-height:2.1;}.public-contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}.public-contact-grid .public-info-card{align-content:start;}.public-contact-grid .ui-icon{width:24px;height:24px;color:var(--ed-primary,#2457e6);}.public-contact-grid small{color:var(--ed-muted,#667085);}.public-info-note{margin-top:18px;background:var(--ed-surface,#fff);border:1px solid var(--ed-border,#e2e8f0);border-radius:18px;padding:22px;}.public-info-note h2{margin-top:0;}@media(max-width:900px){.public-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media(max-width:560px){.public-contact-grid{grid-template-columns:1fr;}}


/* Public marketing primitives shared by homepage, About and Contact. */
.public-icon-copy-card{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;text-align:right;min-width:0;background:var(--ed-surface);color:var(--ed-text);border-color:var(--ed-border);}
.public-icon-copy-card>.public-card-icon{width:46px;height:46px;min-width:46px;border-radius:14px;display:grid;place-items:center;background:var(--ed-primary-soft);color:var(--ed-primary);align-self:center;}
.public-icon-copy-card>.public-card-icon .ui-icon{width:24px;height:24px;}
.public-icon-copy-card>.public-card-copy{display:grid;gap:4px;min-width:0;align-content:center;flex:1 1 auto;text-align:right;background:transparent;color:var(--ed-text);}
.public-icon-copy-card>.public-card-copy :is(h3,b,small,p){margin:0;min-width:0;}
.public-icon-copy-card>.public-card-copy :is(h3,b){color:var(--ed-text);font-weight:850;}
.public-icon-copy-card>.public-card-copy :is(p,small){color:var(--ed-muted);line-height:1.9;}
.landing-feature-grid .landing-feature-card{padding:18px 20px;background:var(--ed-surface);border-color:var(--ed-border);}
.landing-feature-grid .landing-feature-card h3{font-size:var(--ed-font-body);margin:0;}
.landing-feature-grid .landing-feature-card p{font-size:var(--ed-font-md);margin:0;color:var(--ed-muted);}
.public-contact-grid .public-info-card.public-icon-copy-card{align-content:center;}
.public-contact-grid .public-card-copy small{font-size:var(--ed-font-sm);}
.public-contact-grid .public-card-copy b{font-size:var(--ed-font-base);overflow-wrap:anywhere;}
.public-about-platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.public-about-platform-grid>article.public-icon-copy-card{display:flex;flex-direction:row;direction:rtl;align-items:center;justify-content:flex-start;gap:14px;min-height:164px;padding:18px 20px;border:1px solid var(--ed-border);border-radius:18px;background:var(--ed-surface);box-shadow:var(--ed-shadow);}
.public-about-platform-grid>article.public-icon-copy-card>.public-card-icon{align-self:center;flex:0 0 46px;}
.public-about-platform-grid>article.public-icon-copy-card>.public-card-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0;flex:1 1 auto;text-align:right;}
.public-about-platform-grid .public-card-copy b{font-size:var(--ed-font-body);line-height:1.7;}
.public-about-platform-grid .public-card-copy p{font-size:var(--ed-font-md);line-height:1.9;}
@media(max-width:900px){.public-about-platform-grid{grid-template-columns:1fr;}.public-about-platform-grid>article.public-icon-copy-card{min-height:0;}}

/* Public header only: authenticated TEST/admin/platform shells are intentionally not targeted here. */
.landing-page .landing-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;direction:ltr;min-height:74px;height:auto;}
.landing-page .landing-nav>.landing-user-actions{grid-column:1;display:flex;align-items:center;justify-content:flex-start;gap:7px;direction:ltr;--landing-header-control-size:44px;}
.landing-page .landing-user-actions :is(.icon-btn,.btn){height:var(--landing-header-control-size);min-height:var(--landing-header-control-size);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;}
.landing-page .landing-user-actions .icon-btn,.landing-page .landing-account-action{width:var(--landing-header-control-size);min-width:var(--landing-header-control-size);padding:0;border-radius:11px;}
.landing-page .landing-account-action>.ui-icon{display:block;width:19px;height:19px;}
.landing-page .landing-nav>.landing-desktop-nav{grid-column:2;display:flex;align-items:center;justify-content:center;gap:14px;direction:rtl;font-size:var(--ed-font-md);min-width:0;}
.landing-page .landing-nav>.landing-desktop-nav a{display:inline-flex;align-items:center;gap:6px;color:var(--ed-text);white-space:nowrap;}
.landing-page .landing-nav>.landing-desktop-nav a>.ui-icon{width:15px;height:15px;color:var(--ed-primary);flex:0 0 15px;}
.landing-page .landing-nav>.landing-brand{grid-column:3;justify-self:end;direction:rtl;min-width:0;}
.landing-page .landing-menu-toggle{display:none;}
.landing-page .landing-mobile-menu{display:none;border-top:1px solid var(--ed-border);background:var(--ed-surface);box-shadow:0 14px 30px rgba(15,23,42,.08);}
.landing-page .landing-mobile-menu nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-block:10px 14px;}
.landing-page .landing-mobile-menu nav a{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 11px;border:1px solid var(--ed-border);border-radius:10px;background:var(--ed-surface-soft);color:var(--ed-text);font-size:var(--ed-font-sm);text-decoration:none;}
.landing-page .landing-mobile-menu nav a .ui-icon{width:16px;height:16px;flex:0 0 16px;color:var(--ed-primary);}
html.unified-dark .landing-page .landing-mobile-menu,body.dark-ui.landing-page .landing-mobile-menu{background:var(--ed-dark-surface);border-color:var(--ed-dark-border);box-shadow:0 16px 36px rgba(0,0,0,.32);}
html.unified-dark .landing-page .landing-mobile-menu nav a,body.dark-ui.landing-page .landing-mobile-menu nav a{background:var(--ed-dark-surface-2);border-color:var(--ed-dark-border);color:var(--ed-dark-text);}
@media(max-width:1180px) and (min-width:981px){.landing-page .landing-nav>.landing-desktop-nav{gap:9px;font-size:var(--ed-font-xs);}}
@media(max-width:980px){
  .landing-page .landing-header{overflow:visible;}
  .landing-page .landing-nav{grid-template-columns:auto minmax(0,1fr);gap:10px;min-height:66px;padding-block:8px;}
  .landing-page .landing-nav>.landing-user-actions{grid-column:1;grid-row:1;justify-self:start;gap:6px;--landing-header-control-size:40px;}
  .landing-page .landing-menu-toggle{display:grid;width:var(--landing-header-control-size);min-width:var(--landing-header-control-size);height:var(--landing-header-control-size);padding:0;place-items:center;}
  .landing-page .landing-nav>.landing-desktop-nav{display:none;}
  .landing-page .landing-nav>.landing-brand{grid-column:2;grid-row:1;justify-self:end;max-width:min(58vw,320px);display:flex;direction:rtl;}
  .landing-page .landing-nav>.landing-brand b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ed-font-base);}
  .landing-page .landing-nav>.landing-brand .landing-brand-mark.has-logo{max-width:108px;height:40px;}
  .landing-page .landing-nav>.landing-brand .landing-brand-mark.has-logo img{max-width:108px;max-height:40px;}
  .landing-page .landing-mobile-menu:not([hidden]){display:block;}
}
@media(max-width:430px){
  .landing-page .landing-container{width:min(calc(100% - 20px),1180px);}
  .landing-page .landing-nav{gap:7px;}
  .landing-page .landing-nav>.landing-user-actions{gap:4px;--landing-header-control-size:36px;}
  .landing-page .landing-nav>.landing-brand{max-width:min(55vw,220px);gap:6px;}
  .landing-page .landing-nav>.landing-brand b{font-size:var(--ed-font-sm);}
  .landing-page .landing-nav>.landing-brand .landing-brand-mark{width:36px;height:36px;flex-basis:36px;}
  .landing-page .landing-nav>.landing-brand .landing-brand-mark.has-logo,.landing-page .landing-nav>.landing-brand .landing-brand-mark.has-logo img{max-width:78px;max-height:34px;}
}

.discount-rules-live{display:grid;gap:12px;}
.discount-time-preview{border:1px solid var(--ed-border);border-radius:12px;padding:12px;background:var(--ed-surface);display:grid;gap:8px;}
.discount-time-preview>div{display:flex;flex-wrap:wrap;gap:7px;}
.discount-time-preview span{padding:6px 9px;border-radius:999px;background:var(--ed-surface-soft);font-size:var(--ed-font-xs);color:var(--ed-muted);}

/* Homepage video player owns the complete video-frame box; percentage centering never depends on intrinsic video height. */
.landing-page .video-frame{position:relative;}
.landing-page .homepage-video-player{position:absolute;inset:0;width:auto;height:auto;min-height:0;overflow:hidden;display:grid;place-items:center;}
.landing-page .homepage-video-player>video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;}
.landing-page .homepage-video-play{position:relative;inset:auto;transform:none;margin:0;width:62px;height:62px;border:1px solid rgba(255,255,255,.72);border-radius:50%;display:grid;place-items:center;background:rgba(15,23,42,.68);color:#fff;backdrop-filter:blur(7px);cursor:pointer;z-index:3;box-shadow:0 12px 34px rgba(0,0,0,.24);}
.landing-page .homepage-video-play .ui-icon{width:29px;height:29px;}
.landing-page .homepage-video-player.is-playing .homepage-video-play{opacity:0;visibility:hidden;pointer-events:none;}
.landing-page .homepage-video-player:hover .homepage-video-play{background:rgba(36,87,230,.88);}
@media(max-width:680px){
  .landing-page .homepage-video-play{width:52px;height:52px;}
  .landing-page .homepage-video-play .ui-icon{width:25px;height:25px;}
  .landing-footer .footer-grid,.landing-footer .footer-bottom{text-align:center;}
  .landing-footer .footer-grid>*,.landing-footer .footer-grid a,.landing-footer .footer-grid span{justify-items:center;text-align:center;}
  .landing-footer .footer-bottom{display:flex;justify-content:center;align-items:center;width:100%;}
}


/* Public discount block reuses the same chart contract as the student dashboard. */
.landing-page .discount-rule-switch{min-width:0;display:grid;gap:14px;}
.landing-page .discount-rule-switch .discount-switch-tabs{justify-content:center;}
.landing-page .discount-rule-switch .discount-dashboard{background:var(--ed-surface,#fff);border:1px solid var(--ed-border,#d8e0ec);border-radius:16px;padding:16px;}
.landing-page .discount-rule-switch .discount-copy{text-align:right;}
.landing-page .discount-rule-switch .discount-copy h4{margin:0 0 5px;}
.landing-page .discount-rule-switch .discount-copy p{margin:0 0 13px;color:var(--ed-muted,#667085);line-height:1.9;}
.landing-page .mini-discount-stairs{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.landing-page .mini-discount-stairs>span{min-height:42px;border-radius:9px;background:var(--ed-primary);color:#fff;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.landing-page .mini-discount-stairs em{font-style:normal;font-size:var(--ed-font-sm);font-weight:850;background:#fff;color:var(--ed-primary,#2457e6);border:1px solid rgba(255,255,255,.82);border-radius:7px;padding:4px 7px;white-space:nowrap;}
@media(max-width:720px){.landing-page .discount-preview .split-grid{gap:24px;}.landing-page .discount-rule-switch .discount-dashboard{padding:12px;}.landing-page .mini-discount-stairs>span{min-width:72%;max-width:100%;}}

/* r17: configurable email/mobile authentication. */
.auth-channel-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px;border:1px solid var(--ed-border,#dbe3ef);border-radius:14px;background:var(--ed-surface-soft,#f8fafc);margin-bottom:4px}.auth-channel-switch button{min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--ed-muted,#667085);font:inherit;font-weight:850;cursor:pointer}.auth-channel-switch button.active{background:var(--ed-primary,#2457e6);color:#fff}.auth-login-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.auth-login-methods .btn{width:100%;min-width:0}.auth-password-box,.auth-otp-login-box{display:grid;gap:7px}.auth-register-dynamic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.auth-register-dynamic-grid .auth-dynamic-full{grid-column:1/-1}.auth-register-dynamic-grid select,.auth-register-dynamic-grid textarea{width:100%;border:1px solid #dfe5ee;border-radius:12px;background:#f8faff;color:var(--ed-text,#1f2937);padding:10px 12px}.auth-field-verify-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,.8fr) auto;gap:6px;align-items:center;margin-top:4px}.auth-field-verify-actions input{min-width:0;height:40px;border:1px solid #dfe5ee;border-radius:10px;padding:7px 9px;text-align:center;direction:ltr}.auth-field-verify-actions .btn{min-height:40px;padding:7px 9px;font-size:var(--ed-font-xs)}.auth-field-verify-actions[data-provider-disabled="1"]{opacity:.55}.terms-line.auth-terms-transparent{background:transparent;color:var(--ed-text,#475467);border-color:var(--ed-border,#e4e7ec)}
html.unified-dark .auth-channel-switch,body.dark-ui .auth-channel-switch{background:#0f1726;border-color:#33415e}.unified-dark .auth-register-dynamic-grid select,.unified-dark .auth-register-dynamic-grid textarea,.unified-dark .auth-field-verify-actions input,body.dark-ui .auth-register-dynamic-grid select,body.dark-ui .auth-register-dynamic-grid textarea,body.dark-ui .auth-field-verify-actions input{background:#0e1626;color:#edf2ff;border-color:#33415e}html.unified-dark .terms-line.auth-terms-transparent,body.dark-ui .terms-line.auth-terms-transparent{background:transparent;color:#edf2ff;border-color:#33415e}
@media(max-width:620px){.auth-register-dynamic-grid{grid-template-columns:1fr}.auth-register-dynamic-grid .auth-dynamic-full{grid-column:auto}.auth-field-verify-actions{grid-template-columns:1fr 86px auto}.auth-login-methods{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* r18: password recovery uses the same compact channel switch contract as login. */
.auth-recovery-channel-switch{margin-bottom:2px}.auth-recovery-form>.btn.full{margin-top:2px}.auth-recovery-form .auth-compact-field{margin:0}.auth-recovery-form .auth-fallback-link{margin-top:2px}
@media(max-width:640px){.auth-recovery-channel-switch{grid-template-columns:1fr 1fr}.auth-recovery-form{gap:8px}.auth-popup-card:has(.auth-recovery-form){padding-inline:18px}}

/* r20: one smart identifier field with step-based login. */
.auth-unified-login [data-auth-identity-stage],.auth-unified-login .auth-password-box,.auth-unified-login .auth-otp-login-box{min-width:0}
.auth-unified-login .auth-identity-detected{margin-top:5px;font-size:var(--ed-font-sm);font-weight:800;color:var(--ed-primary,#2457e6)}
.auth-unified-login .auth-selected-identity{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--ed-border,#dbe3ef);border-radius:12px;background:var(--ed-surface-soft,#f8fafc);font-size:var(--ed-font-sm);font-weight:800;color:var(--ed-text,#1f2937)}
.auth-unified-login .auth-selected-identity>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:left}
.auth-unified-login .auth-change-identity{border:0;background:transparent;color:var(--ed-primary,#2457e6);font:inherit;font-weight:900;cursor:pointer;padding:4px 6px;white-space:nowrap}
.auth-unified-login .auth-otp-actions,.auth-unified-account .auth-otp-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;width:100%}
.auth-unified-login .auth-otp-actions .btn,.auth-unified-account .auth-otp-actions .btn{width:100%;min-width:0;height:52px;min-height:52px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
html.unified-dark .auth-unified-login .auth-selected-identity,body.dark-ui .auth-unified-login .auth-selected-identity{background:#0e1626;border-color:#33415e;color:#edf2ff}
@media(max-width:480px){.auth-unified-login .auth-login-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-unified-login .auth-otp-actions,.auth-unified-account .auth-otp-actions{gap:10px}}

/* Unified student account flow. One stage at a time; login and registration share the same shell. */
.auth-unified-account{display:grid;gap:12px;min-width:0}.auth-unified-account-form{display:grid;gap:10px}.auth-flow-stage{display:grid;gap:10px;min-width:0}.auth-flow-stage[hidden],.auth-unified-registration[hidden],.auth-unified-account-form[hidden]{display:none}.auth-entry-channel-switch{margin-bottom:4px}.auth-entry-methods{margin-top:2px}.auth-flow-stage-focused{padding-top:2px}.auth-link-button{border:0;background:transparent;color:var(--ed-primary,#2457e6);font:inherit;font-weight:800;padding:0;cursor:pointer}.auth-password-links{display:flex;justify-content:center;align-items:center;min-height:28px;font-size:var(--ed-font-sm)}.auth-password-links a{color:var(--ed-primary,#2457e6);font-weight:800;text-decoration:none}.auth-stage-back{width:42px;height:42px;border:1px solid var(--ed-border,#dbe3ef);border-radius:14px;background:var(--ed-surface,#fff);color:var(--ed-text,#1f2937);display:grid;place-items:center;cursor:pointer;justify-self:start}.auth-stage-back svg{width:20px;height:20px}.auth-unified-registration{display:grid;gap:10px}.auth-unified-registration .auth-back-login{margin-top:0}.auth-unified-registration [data-auth-registration-verify][hidden]{display:none}.auth-unified-registration input[data-unified-prefilled="1"]{background:var(--ed-surface-soft,#f8fafc);opacity:.88}.auth-unified-account .auth-channel-switch button.active{background:#fff;color:var(--ed-text,#152238);box-shadow:0 4px 16px rgba(15,23,42,.06)}html.unified-dark .auth-unified-account .auth-channel-switch button.active,body.dark-ui .auth-unified-account .auth-channel-switch button.active{background:#182238;color:#fff}.auth-unified-account .auth-channel-switch{border-radius:18px;padding:6px}.auth-unified-account .auth-channel-switch button{border-radius:14px;min-height:46px}.auth-unified-account .auth-login-methods{grid-template-columns:repeat(2,minmax(0,1fr))}
html.unified-dark .auth-stage-back,body.dark-ui .auth-stage-back{background:#0f172a;border-color:#344054;color:#f8fafc}
/* Preserve hidden semantics for the legacy expert/admin login flow as well. */
.auth-unified-login .auth-password-box[hidden],.auth-unified-login .auth-otp-login-box[hidden],.auth-unified-login [data-auth-identity-stage][hidden],.auth-unified-login [data-auth-methods][hidden]{display:none}
@media(max-width:520px){.auth-unified-account{gap:9px}.auth-unified-account .auth-channel-switch button{min-height:44px}.auth-flow-foot{align-items:center}.auth-unified-account .auth-login-methods{grid-template-columns:1fr 1fr}.auth-unified-registration .auth-register-dynamic-grid{grid-template-columns:1fr}}

/* Compact OTP stage: destination box plus six independent visual cells. */
.auth-otp-destination{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;padding:10px 14px;border:1px solid var(--ed-border,#dbe3ef);border-radius:14px;background:var(--ed-surface-soft,#f8fafc);color:var(--ed-text,#1f2937);text-align:center}.auth-otp-destination small{font-size:var(--ed-font-xs);color:var(--ed-muted,#667085);font-weight:700}.auth-otp-destination strong{font-size:var(--ed-font-body);font-weight:900;direction:ltr;unicode-bidi:plaintext}.auth-otp-field{gap:6px}.auth-otp-code-shell{position:relative;display:block;min-height:56px;cursor:text}.auth-otp-master{position:absolute;inset:0;width:100%;height:100%;opacity:.01;z-index:2;cursor:text;font-size:16px;color:transparent;background:transparent;border:0;outline:0;caret-color:transparent}.auth-otp-digits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;direction:ltr;pointer-events:none}.auth-otp-digits>span{display:grid;place-items:center;aspect-ratio:1/1;min-height:48px;border:1px solid var(--ed-border,#dbe3ef);border-radius:12px;background:var(--ed-surface,#fff);color:var(--ed-text,#1f2937);font-size:20px;font-weight:950;transition:border-color .15s,box-shadow .15s,background .15s}.auth-otp-code-shell:focus-within .auth-otp-digits>span{border-color:color-mix(in srgb,var(--ed-primary,#2457e6) 52%,var(--ed-border,#dbe3ef));box-shadow:0 0 0 2px color-mix(in srgb,var(--ed-primary,#2457e6) 10%,transparent)}.auth-otp-digits>span.filled{background:color-mix(in srgb,var(--ed-primary,#2457e6) 7%,var(--ed-surface,#fff));border-color:color-mix(in srgb,var(--ed-primary,#2457e6) 36%,var(--ed-border,#dbe3ef))}html.unified-dark .auth-otp-destination,body.dark-ui .auth-otp-destination{background:#0e1626;border-color:#33415e;color:#edf2ff}html.unified-dark .auth-otp-digits>span,body.dark-ui .auth-otp-digits>span{background:#0e1626;border-color:#33415e;color:#fff}
@media(max-width:420px){.auth-otp-digits{gap:5px}.auth-otp-digits>span{min-height:44px;border-radius:10px;font-size:18px}}

/* r41 public quick-access header: fixed instead of overflow-sensitive sticky. */
.landing-page{padding-top:74px!important;}
.landing-page .landing-header{
  position:fixed!important;top:0!important;right:0!important;left:0!important;width:100%!important;
  z-index:9000!important;transform:none!important;translate:none!important;
}
@media(max-width:980px){.landing-page{padding-top:82px!important;}}

/* EduNex r48: homepage feature cards use the same compact swipe/dot pattern as Academy cards. */
.landing-page .landing-feature-grid[data-features-slider]{
  display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;padding:4px 2px 8px;scrollbar-width:none;
}
.landing-page .landing-feature-grid[data-features-slider]::-webkit-scrollbar{display:none}
.landing-page .landing-feature-grid[data-features-slider]>.landing-feature-card{
  flex:0 0 min(360px,84vw);width:min(360px,84vw);min-width:min(360px,84vw);max-width:min(360px,84vw);
  scroll-snap-align:center;min-height:0;margin:0;
}
html.unified-dark .landing-page .landing-feature-grid[data-features-slider]>.landing-feature-card,
body.dark-ui.landing-page .landing-feature-grid[data-features-slider]>.landing-feature-card{
  background:transparent;box-shadow:none;border-color:var(--ed-dark-border,var(--ed-border));
}

/* r94: Google SSO and first-stage LTR shell support. */
.auth-google-entry{margin:0 0 12px}.auth-google-entry .btn{display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none}.auth-google-entry .btn>span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:#4285f4;font-weight:900;border:1px solid rgba(15,23,42,.12)}.auth-divider{display:flex;align-items:center;gap:10px;color:#7b8496;font-size:12px;margin:10px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:rgba(120,130,150,.2);flex:1}
[dir="ltr"] .auth-page,[dir="ltr"] .landing-page,[dir="ltr"] .unified-platform{text-align:left}[dir="ltr"] .up-sidebar{right:auto;left:0}[dir="ltr"] .up-main{margin-right:0;margin-left:var(--up-sidebar-width,260px)}[dir="ltr"] .up-nav a,[dir="ltr"] .up-user-link,[dir="ltr"] .up-brand a{direction:ltr}[dir="ltr"] input,[dir="ltr"] textarea,[dir="ltr"] select{direction:ltr;text-align:left}
@media(max-width:980px){[dir="ltr"] .up-main{margin-left:0}}
