/* EMS Boost - partner institutes: student branding, join page, institute dashboard, Super Admin editor */
:root{ --brand:#2f5bff; --brand-2:#2447c7; --brand-rgb:47,91,255; --brand-ink:#ffffff; --brand-deep:#2447c7; --brand-glow:#6f8dff; }

/* ---- logo or initials ---- */
.ib-mark{ font-style:normal; flex:0 0 auto; width:40px; height:40px; border-radius:12px; display:grid; place-items:center; overflow:hidden;
  font-family:'Sora','Manrope',sans-serif; font-weight:800; font-size:15px; letter-spacing:.02em; box-shadow:0 0 0 2px rgba(255,255,255,.22); }
.ib-mark.has-img{ background:#fff; }
.ib-mark img{ width:100%; height:100%; object-fit:contain; display:block; }
.ib-mark.lg{ width:52px; height:52px; border-radius:15px; font-size:19px; }
.ib-mark.xl{ width:76px; height:76px; border-radius:22px; font-size:27px; box-shadow:0 0 0 4px #fff, 0 14px 30px rgba(var(--brand-rgb),.35); }

/* ---- 1. student header, footer and accents ---- */
body.ib-on #appHero .logo-mark{ flex:1 1 auto; min-width:0; }
body.ib-on #appHero .logo-mark > .logo-img, body.ib-on #appHero .logo-mark > span{ display:none !important; }
body.ib-on #appHero .logo-mark:after{ content:none !important; display:none !important; }
.ib-head{ display:flex; align-items:center; gap:10px; min-width:0; }
.ib-head .ib-nm, .ib-prev .ib-nm{ display:flex; flex-direction:column; min-width:0; text-align:left; }
.ib-head .ib-nm b, .ib-prev .ib-nm b{ font-family:'Sora','Manrope',sans-serif; font-weight:800; color:#fff; font-size:16px; line-height:1.2; letter-spacing:-.01em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ib-head .ib-nm small, .ib-prev .ib-nm small{ font-size:10.5px; font-weight:600; color:rgba(255,255,255,.62); letter-spacing:.02em; margin-top:2px; white-space:nowrap; }
body.ib-on #appHero{ background:radial-gradient(640px 240px at 88% -50%, rgba(var(--brand-rgb),.75), transparent 70%), radial-gradient(420px 200px at 0% 140%, rgba(var(--brand-rgb),.28), transparent 70%), linear-gradient(135deg,#070d24,#0f1d5c) !important; }
body.ib-on #appHero:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, var(--brand-glow), var(--brand) 60%, transparent); }
body.ib-on .gx-g.on{ background:linear-gradient(135deg, var(--brand), var(--brand-2)) !important; box-shadow:0 14px 30px rgba(var(--brand-rgb),.33) !important; }
body.ib-on .gx-g.on .gx-gt b{ color:var(--brand-ink) !important; }
body.ib-on .gx-g.on .gx-gt small{ color:var(--brand-ink) !important; opacity:.78; }
body.ib-on .gx-s.on{ border-color:var(--brand) !important; background:rgba(var(--brand-rgb),.09) !important; color:var(--brand-deep) !important; box-shadow:inset 0 -3px 0 var(--brand) !important; }
body.ib-on .btn-primary{ background:var(--brand) !important; border-color:var(--brand) !important; color:var(--brand-ink) !important; }
body.ib-on .btn-primary:hover{ background:var(--brand-2) !important; }
body.ib-on #appFooter{ border-top:3px solid rgba(var(--brand-rgb),.25); }
@media(max-width:760px){
  body.ib-on .gx-g.on{ background:rgba(var(--brand-rgb),.12) !important; box-shadow:none !important; }
  body.ib-on .gx-g.on .gx-gt b{ color:var(--brand-deep) !important; }
  .ib-head{ gap:8px; }
  .ib-head .ib-mark{ width:36px; height:36px; border-radius:11px; font-size:13.5px; }
  .ib-head .ib-nm b{ font-size:14px; }
  .ib-head .ib-nm small{ font-size:10px; }
}
/* white-label: no EMS Boost app prompt or helper bot */
body.ib-white #emsInstall, body.ib-white #emsbot{ display:none !important; }

/* ---- 2. join page ---- */
body.ib-joining{ overflow:hidden; }
body.ib-joining #emsbot, body.ib-joining #emsInstall, body.ib-joining #supportFab, body.ib-joining .m-stick, body.ib-joining #mStick{ display:none !important; }
.ibj{ position:fixed; inset:0; z-index:9500; overflow-y:auto; -webkit-overflow-scrolling:touch; display:flex; align-items:flex-start; justify-content:center; padding:28px 16px 40px; box-sizing:border-box;
  background:radial-gradient(560px 380px at 50% -8%, rgba(var(--brand-rgb),.62), transparent 72%), radial-gradient(420px 300px at 100% 100%, rgba(255,184,31,.14), transparent 70%), linear-gradient(160deg,#060b20,#0d1a52 60%,#0a1440);
  font-family:'Manrope','Inter',system-ui,sans-serif; color:#0b1b33; }
.ibj-card{ position:relative; width:100%; max-width:440px; background:#fff; border-radius:28px; padding:30px 24px 22px; box-shadow:0 30px 80px rgba(0,0,0,.45); box-sizing:border-box; margin:auto 0; overflow:hidden; }
.ibj-card:before{ content:""; position:absolute; left:0; right:0; top:0; height:6px; background:linear-gradient(90deg, var(--brand), var(--brand-glow), #ffb81f); }
.ibj-top{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.ibj-k{ margin:18px 0 6px; display:inline-block; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-deep); background:rgba(var(--brand-rgb),.1); padding:5px 11px; border-radius:999px; }
.ibj h1{ font-family:'Sora','Manrope',sans-serif; font-size:25px; line-height:1.2; font-weight:800; margin:4px 0 2px; letter-spacing:-.02em; color:#0b1b33; overflow-wrap:anywhere; }
.ibj-on{ margin:0; color:#5b6b85; font-size:14.5px; font-weight:600; }
.ibj-perks{ list-style:none; margin:18px 0 18px; padding:14px 16px; background:#f5f7fd; border-radius:18px; display:grid; gap:8px; }
.ibj-perks li{ position:relative; padding-left:26px; font-size:14px; line-height:1.4; color:#24324d; }
.ibj-perks li:before{ content:""; position:absolute; left:0; top:1px; width:18px; height:18px; border-radius:50%; background:var(--brand); }
.ibj-perks li:after{ content:""; position:absolute; left:6px; top:5px; width:4px; height:8px; border:solid var(--brand-ink); border-width:0 2px 2px 0; transform:rotate(45deg); }
.ibj-form .v2-f label{ text-transform:none; letter-spacing:0; font-size:13px; color:#33415c; }
.ibj-form .v2-f input{ font-size:16px; padding:12px 13px; }
.ibj-form .dm-tel input{ padding:12px 13px !important; }
.ibj-form .v2-f input:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(var(--brand-rgb),.18); }
.ibj-form .dm-tel:focus-within{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(var(--brand-rgb),.18); }
.ibj-form .dm-tel input:focus{ box-shadow:none; }
.ibj-form input[type=radio], .ibj-form input[type=checkbox]{ accent-color:var(--brand-deep); width:18px !important; height:18px; }
.ibj-form a{ color:var(--brand-deep); font-weight:700; }
.ibj-go{ display:block; width:100%; margin:6px 0 0; min-height:54px; border:0; border-radius:16px; font:800 16.5px/1.2 'Sora','Manrope',sans-serif; cursor:pointer;
  background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:var(--brand-ink); box-shadow:0 14px 30px rgba(var(--brand-rgb),.35); transition:transform .15s, box-shadow .15s; padding:0 16px; }
.ibj-go:hover{ transform:translateY(-1px); }
.ibj-go:disabled{ opacity:.65; cursor:wait; transform:none; }
.ibj-link{ display:block; width:100%; margin:10px 0 0; background:none; border:0; color:#5b6b85; font:700 14px 'Manrope',sans-serif; cursor:pointer; padding:10px; }
.ibj-alt{ text-align:center; margin:16px 0 0; font-size:14px; color:#5b6b85; }
.ibj-alt button{ background:none; border:0; padding:4px; font:inherit; font-weight:800; color:var(--brand-deep); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.ibj-closed{ background:#fff7e6; border:1px solid #f5d48a; color:#7a4b00; border-radius:14px; padding:14px; font-size:14.5px; font-weight:600; text-align:center; }
.ibj-p{ font-size:14.5px; line-height:1.55; color:#33415c; text-align:center; margin:10px 0 0; }
.ibj-soft{ color:#5b6b85; font-size:13.5px; }
.ibj-bad{ text-align:center; padding-top:36px; }
.ibj-bad .ibj-go{ margin-top:20px; }
.ibj-ic{ width:64px; height:64px; margin:0 auto 14px; border-radius:50%; display:grid; place-items:center; font:800 30px 'Sora',sans-serif; color:#b45309; background:#fff3d6; box-shadow:0 0 0 8px #fffaf0; }
.ibj-wait{ text-align:center; padding:48px 24px; }
.ibj-spin{ width:38px; height:38px; margin:0 auto; border-radius:50%; border:4px solid rgba(var(--brand-rgb),.18); border-top-color:var(--brand); animation:ibspin .8s linear infinite; }
@keyframes ibspin{ to{ transform:rotate(360deg); } }
/* success */
.ibj-done .ibj-top{ position:relative; }
.ibj-tick{ width:30px; height:30px; border-radius:50%; background:#16a34a; border:3px solid #fff; margin:-20px 0 0 42px; position:relative; box-shadow:0 6px 14px rgba(22,163,74,.35); }
.ibj-tick:after{ content:""; position:absolute; left:8px; top:4px; width:6px; height:11px; border:solid #fff; border-width:0 3px 3px 0; transform:rotate(45deg); }
.ibj-done h1{ margin-top:10px; }
.ibj-save{ margin:18px 0 12px; background:#fff7e6; border:1px solid #f5d48a; color:#6b4300; border-radius:14px; padding:11px 14px; font-size:13.5px; line-height:1.45; }
.ibj-cred{ border-radius:18px; background:linear-gradient(135deg,#070d24,#13276f); padding:6px 16px; box-shadow:0 14px 30px rgba(11,22,64,.25); }
.ibj-row{ display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; column-gap:10px; padding:12px 0; }
.ibj-row + .ibj-row{ border-top:1px solid rgba(255,255,255,.12); }
.ibj-row small{ grid-column:1; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#9fb0dd; }
.ibj-row b{ grid-column:1; font-family:'Sora','JetBrains Mono',monospace; font-size:26px; color:#ffd25a; letter-spacing:.04em; overflow-wrap:anywhere; line-height:1.25; }
.ibj-cp{ grid-column:2; grid-row:1 / span 2; align-self:center; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.08); color:#fff; border-radius:12px; padding:9px 14px; font:700 13.5px 'Manrope',sans-serif; cursor:pointer; min-width:74px; }
.ibj-cp.ib-copied{ background:#16a34a; border-color:#16a34a; }
.ibj-acts{ display:grid; grid-template-columns:1fr 1.35fr; gap:10px; margin:12px 0 0; }
.ibj-sec{ display:flex; align-items:center; justify-content:center; text-align:center; min-height:48px; border-radius:14px; border:1.5px solid #d9e0ef; background:#fff; color:#0b1b33; font:800 14px 'Manrope',sans-serif; cursor:pointer; text-decoration:none; padding:0 10px; }
.ibj-sec.ib-copied{ border-color:#16a34a; color:#15803d; }
.ibj-sec.wa{ background:#25d366; border-color:#25d366; color:#06361b; }
.ibj-done .ibj-go{ margin-top:14px; }
@media(max-width:420px){
  .ibj{ padding:16px 12px 28px; }
  .ibj-card{ padding:26px 18px 18px; border-radius:24px; }
  .ibj h1{ font-size:23px; }
  .ibj-row b{ font-size:23px; }
}

/* ---- 3a. institute dashboard ---- */
.ib-ihead{ background:radial-gradient(520px 200px at 100% 0, rgba(var(--brand-rgb),.55), transparent 70%), linear-gradient(135deg,#070d24,#13276f); color:#fff; border-radius:24px; padding:20px 22px; position:relative; overflow:hidden; box-shadow:0 20px 44px rgba(11,22,64,.22); }
.ib-ihead:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg, var(--brand-glow), var(--brand), transparent); }
.ib-ihead-l{ display:flex; align-items:center; gap:14px; min-width:0; flex:1 1 320px; }
.ib-ihead h2{ color:#fff !important; font-family:'Sora','Manrope',sans-serif; letter-spacing:-.01em; overflow-wrap:anywhere; }
.ib-ihead .sub{ color:#c9d4f5 !important; max-width:640px; line-height:1.45; font-size:13px !important; margin-top:4px !important; }
.ib-ihead .admin-badge{ background:rgba(255,210,90,.16); color:#ffd25a; border:1px solid rgba(255,210,90,.35); }
.ib-ihead .btn-ghost{ background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.25); }
.ib-sum .ov-grid{ grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
.ib-sum .ov-card{ border-radius:16px; }
.ib-sum .ov-card strong{ font-family:'Sora','Manrope',sans-serif; font-size:24px; }
.ib-earn{ margin-top:12px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; border-radius:18px; padding:16px 18px;
  background:radial-gradient(400px 160px at 100% 0, rgba(255,184,31,.28), transparent 70%), linear-gradient(135deg,#070d24,#13276f); color:#fff; }
.ib-earn > div{ display:flex; flex-direction:column; min-width:0; }
.ib-earn-k, .ib-earn-all span{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#9fb0dd; }
.ib-earn b{ font-family:'Sora','Manrope',sans-serif; font-size:21px; color:#ffd25a; margin:3px 0 2px; }
.ib-earn small{ color:#c9d4f5; font-size:12.5px; }
.ib-earn-all{ text-align:right; padding-left:16px; border-left:1px solid rgba(255,255,255,.14); }
.ib-earn-all b{ color:#fff; }
.ib-joincard{ display:flex; flex-wrap:wrap; gap:18px; align-items:stretch; border:1.5px solid rgba(var(--brand-rgb),.35) !important; background:linear-gradient(180deg, rgba(var(--brand-rgb),.06), #fff 60%) !important; }
.ib-jc-l{ flex:1 1 340px; min-width:0; }
.ib-url{ display:flex; align-items:center; gap:8px; background:#f2f5fd; border:1px dashed #b9c6e6; border-radius:12px; padding:10px 12px; margin:10px 0 12px; min-width:0; }
.ib-url code{ flex:1; min-width:0; font:600 14px/1.4 'JetBrains Mono',ui-monospace,monospace; color:#0b1b33; overflow-wrap:anywhere; word-break:break-all; }
.ib-jc-acts{ display:flex; flex-wrap:wrap; gap:8px; }
.ib-wa{ background:#25d366 !important; color:#06361b !important; border-color:#25d366 !important; text-decoration:none; font-weight:800; }
.ib-jc-code{ flex:0 0 200px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border-radius:18px; padding:16px; background:linear-gradient(135deg,#070d24,#13276f); color:#fff; }
.ib-jc-code span{ font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9fb0dd; }
.ib-jc-code b{ font-family:'Sora','JetBrains Mono',monospace; font-size:32px; letter-spacing:.14em; color:#ffd25a; margin:6px 0; }
.ib-jc-code small{ font-size:12px; color:#c9d4f5; }
@media(max-width:640px){
  .ib-ihead{ padding:16px; border-radius:20px; }
  .ib-ihead .ib-mark.lg{ width:44px; height:44px; font-size:16px; }
  .ib-earn-all{ text-align:left; border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,.14); padding-top:10px; width:100%; }
  .ib-jc-code{ flex:1 1 100%; flex-direction:row; gap:12px; justify-content:space-between; padding:12px 16px; }
  .ib-jc-code small{ display:none; }
  .ib-jc-code b{ font-size:24px; margin:0; }
  .ib-jc-acts .btn{ flex:1 1 auto; text-align:center; }
  /* student table as cards with compact chips */
  #instTable thead{ display:none; }
  #instTable, #instTable tbody{ display:block; width:100%; }
  #instTable tr{ display:flex; flex-wrap:wrap; gap:6px; padding:12px; border:1px solid var(--line,#e1e8f5); border-radius:16px; margin:0 0 10px; background:#fff; box-shadow:0 4px 14px rgba(15,40,90,.05); }
  #instTable td{ display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:4px; border:0 !important; padding:4px 10px !important; background:#f2f5fd; border-radius:999px; font-size:12.5px; line-height:1.35; }
  #instTable td:before{ content:attr(data-l); color:#5b6b85; font-weight:600; }
  #instTable td:empty{ display:none; }
  #instTable td .sub{ display:inline !important; margin:0 !important; font-size:11.5px !important; }
  #instTable td.ib-who{ flex:1 0 100%; display:block; background:none; padding:0 0 2px !important; font-size:15px; }
  #instTable td.ib-who .sub{ display:block !important; }
  #instTable td.ib-act{ flex:1 0 100%; background:none; padding:6px 0 0 !important; display:flex; gap:8px; }
  #instTable td.ib-who:before, #instTable td.ib-act:before{ content:none; }
  #instTable td.ib-act .btn{ flex:1; }
  #instTable td .v2-pill{ padding:0 6px; }
  .v2-scroll:has(#instTable){ overflow:visible; }
}

/* ---- 3b. Super Admin editor ---- */
.ib-adm{ margin:16px 0 12px; padding:16px; border:1.5px solid #e3eaf9; border-radius:18px; background:linear-gradient(180deg,#f7f9ff,#fff); }
.ib-adm-h{ display:flex; flex-direction:column; margin-bottom:12px; }
.ib-adm-h b{ font-family:'Sora','Manrope',sans-serif; font-size:16px; }
.ib-adm-h span{ font-size:12.5px; color:#5b6b85; }
.ib-prev{ border-radius:16px; overflow:hidden; border:1px solid #e3eaf9; margin-bottom:14px; box-shadow:0 8px 20px rgba(15,40,90,.06); }
.ib-prev-bar{ display:flex; align-items:center; gap:10px; padding:10px 12px; position:relative;
  background:radial-gradient(360px 140px at 90% -50%, rgba(var(--brand-rgb),.8), transparent 70%), linear-gradient(135deg,#070d24,#0f1d5c); }
.ib-prev-bar:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, var(--brand-glow), var(--brand) 60%, transparent); }
.ib-prev-bar .ib-nm{ flex:1; }
.ib-prev-bar .ib-nm b{ font-size:14.5px; }
.ib-prev-av{ width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,#ffb81f,#ff8a1f); color:#2b1d00; display:grid; place-items:center; font:800 11px 'Manrope',sans-serif; flex:0 0 auto; }
.ib-prev-body{ display:flex; align-items:center; gap:8px; padding:10px 12px; background:#f2f5fd; }
.ib-prev-tab{ font:700 12px 'Manrope',sans-serif; padding:6px 12px; border-radius:10px; background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:var(--brand-ink); }
.ib-prev-btn{ font:700 12px 'Manrope',sans-serif; padding:6px 12px; border-radius:999px; background:var(--brand); color:var(--brand-ink); }
.ib-prev-cap{ margin-left:auto; font-size:11px; color:#93a1b8; font-weight:600; }
.ib-col{ display:flex; gap:8px; align-items:center; }
.ib-col input[type=color]{ width:46px !important; height:42px; padding:3px !important; flex:0 0 46px; cursor:pointer; }
.ib-col input[type=text]{ flex:1; min-width:0; font-family:'JetBrains Mono',ui-monospace,monospace; }
.ib-mini{ border:1.5px solid #d9e0ef; background:#fff; color:#33415c; border-radius:10px; padding:8px 12px; font:700 12.5px 'Manrope',sans-serif; cursor:pointer; white-space:nowrap; }
.ib-mini.ib-copied{ border-color:#16a34a; color:#15803d; }
.ib-logo-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ib-logo-row .ib-mark{ box-shadow:0 0 0 1px #e3eaf9; }
.ib-file{ position:relative; overflow:hidden; cursor:pointer; }
.ib-file input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.ib-logo-row .sub{ flex:1 1 200px; margin:0; font-size:12.5px; }
.ib-seg{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ib-seg.three{ grid-template-columns:repeat(3,1fr); }
.ib-opt{ text-align:left; display:flex; flex-direction:column; gap:2px; border:1.5px solid #d9e0ef; background:#fff; border-radius:14px; padding:10px 12px; cursor:pointer; font-family:'Manrope',sans-serif; color:#0b1b33; transition:border-color .15s, box-shadow .15s; }
.ib-opt b{ font-size:14px; }
.ib-opt b em{ font-style:normal; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; background:#fff0c7; color:#8a5a00; padding:2px 6px; border-radius:99px; margin-left:4px; vertical-align:2px; }
.ib-opt small{ font-size:12px; color:#5b6b85; line-height:1.35; }
.ib-opt.on{ border-color:#2f5bff; box-shadow:0 0 0 3px rgba(47,91,255,.14); background:#f4f7ff; }
.ib-jl-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.ib-jl .ib-url{ margin:0 0 10px; }
.ib-sw{ display:inline-flex !important; align-items:center; gap:10px; font-size:14px !important; font-weight:600 !important; text-transform:none !important; letter-spacing:0 !important; color:#0b1b33 !important; cursor:pointer; margin:0 !important; }
.ib-sw input{ position:absolute; opacity:0; width:1px !important; height:1px; }
.ib-sw span{ width:42px; height:24px; border-radius:99px; background:#cfd8ea; position:relative; transition:background .15s; flex:0 0 auto; }
.ib-sw span:after{ content:""; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:left .15s; }
.ib-sw input:checked + span{ background:#16a34a; }
.ib-sw input:checked + span:after{ left:21px; }
.ib-sw input:focus-visible + span{ box-shadow:0 0 0 3px rgba(47,91,255,.3); }
.ib-pill-gold{ background:#fff0c7 !important; color:#8a5a00 !important; }
.ib-mon{ font-size:12px; font-weight:700; color:#137a3d; margin-top:4px; }
.ib-mon.off{ color:#92400e; }
.ib-inst-name{ display:flex; align-items:center; gap:10px; }
.ib-inst-name .ib-mark{ width:32px; height:32px; border-radius:10px; font-size:12px; box-shadow:0 0 0 1px #e3eaf9; }
@media(max-width:640px){
  .ib-seg, .ib-seg.three{ grid-template-columns:1fr; }
  .ib-adm{ padding:12px; }
}
/* round 2 polish */
body.ib-on #appHero .session-bar{ flex:0 0 auto; }
body.ib-on #appHero .switch-link{ white-space:nowrap; }
.ib-joincard .btn-primary{ background:var(--brand) !important; border-color:var(--brand) !important; color:var(--brand-ink) !important; }
.ib-badges{ display:flex; flex-wrap:wrap; gap:4px; min-width:130px; max-width:190px; }
.ib-badges .v2-pill{ white-space:nowrap; }
.ib-inst-name{ min-width:170px; }
@media(max-width:640px){ .ib-prev-cap{ display:none; } .ib-prev-body span{ white-space:nowrap; } }

/* package (partner restrictions) */
.ib-pk{ margin-top:12px; }
.ib-seg.four{ grid-template-columns:repeat(4,1fr); }
.ib-pk-sw{ display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; margin:14px 0 12px; }
.ib-pk-sw .ib-sw{ font-size:13.5px !important; }
.ib-pk-sw input:disabled + span{ opacity:.55; }
.ib-pk-ai{ background:#fff7e6; border:1px solid #f6d48b; color:#5c3d00; border-radius:12px; padding:10px 12px; font-size:13px; line-height:1.45; margin:0 0 12px; }
.ib-pk-off{ margin-top:2px !important; }
.ib-pk-off input:disabled + span{ opacity:.6; }
.ib-pk-note{ font-size:12.5px; margin:6px 0 0; }
.ib-pk-add{ border-top:1px dashed #d9e0ef; margin-top:14px; padding-top:12px; }
.ib-pk-add > b{ font-family:'Sora','Manrope',sans-serif; font-size:14.5px; }
.ib-pk-add .sub{ margin:2px 0 10px; font-size:12.5px; }
.ib-pk-hist{ margin:10px 0 0; padding-left:18px; font-size:12.5px; color:#33415c; }
.ib-pk-hist small{ color:#7a879c; }
.ib-pkcard h4{ margin-bottom:10px; }
.ib-pkc-cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ib-pkc-k{ display:block; font-size:12.5px; font-weight:700; color:#5b6b85; margin-bottom:6px; }
.ib-pkc-cols ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:5px; font-size:14px; }
.ib-pkc-yes li:before{ content:"\2713"; color:#15803d; font-weight:800; margin-right:8px; }
.ib-pkc-no li{ color:#7a879c; }
.ib-pkc-no li:before{ content:"\2013"; margin-right:8px; }
.ib-pkc-ai{ margin:12px 0 0; font-size:13.5px; line-height:1.5; background:#f4f7ff; border-radius:12px; padding:10px 12px; color:#1e2b45; }
@media(max-width:640px){
  .ib-seg.four{ grid-template-columns:1fr 1fr; }
  .ib-pk-sw, .ib-pkc-cols{ grid-template-columns:1fr; }
}

/* join page: two doors (Oct 2026) */
.ibj-door-list{ display:grid; gap:12px; margin:22px 0 4px; }
.ibj-door{ display:flex; align-items:center; gap:14px; width:100%; text-align:left; padding:16px; border-radius:18px; border:1.5px solid #dfe5f2; background:#fff; cursor:pointer; font-family:'Manrope',sans-serif; color:#0b1b33; transition:border-color .15s, box-shadow .15s, transform .15s; }
.ibj-door:hover{ border-color:var(--brand); box-shadow:0 8px 22px rgba(var(--brand-rgb),.14); transform:translateY(-1px); }
.ibj-door:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(var(--brand-rgb),.3); }
.ibj-door b{ display:block; font:800 16px 'Sora','Manrope',sans-serif; }
.ibj-door small{ display:block; margin-top:3px; font-size:13px; line-height:1.4; color:#5b6b85; }
.ibj-dic{ flex:0 0 44px; height:44px; border-radius:14px; display:grid; place-items:center; font:800 22px 'Sora',sans-serif; background:rgba(var(--brand-rgb),.1); color:var(--brand-deep); }
.ibj-door.new .ibj-dic{ background:var(--brand); color:var(--brand-ink); }
.ibj-back{ position:absolute; left:14px; top:16px; border:0; background:none; color:#5b6b85; font:700 14px 'Manrope',sans-serif; cursor:pointer; padding:6px 8px; border-radius:10px; }
.ibj-back:hover{ background:#f1f4fb; color:#0b1b33; }
.ibj-opt{ font-weight:500; color:#7a879c; }
.ibj-steps{ display:grid; gap:10px; margin:20px 0 6px; }
.ibj-steps div{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.45; color:#24324d; }
.ibj-steps b{ flex:0 0 28px; height:28px; border-radius:50%; display:grid; place-items:center; background:rgba(var(--brand-rgb),.12); color:var(--brand-deep); font:800 13px 'Sora',sans-serif; }
.ibj-st{ margin:10px 0 4px; padding:12px 14px; border-radius:14px; font-size:14.5px; line-height:1.45; font-weight:600; }
.ibj-st.wait{ background:#fff7e6; color:#6b4300; }
.ibj-st.ok{ background:#e9f9ef; color:#14532d; }
.ibj-st.no{ background:#fdeceb; color:#8a1c12; }
.ib-codebox{ margin:14px 0 4px; padding:12px; border-radius:12px; background:#f4f7ff; border:1px solid #dfe6fb; }
.ib-codebox label{ display:block; font-size:13px; line-height:1.45; color:#33415c; margin-bottom:8px; }
.ib-code-row{ display:flex; gap:8px; }
.ib-code-row input{ flex:1; min-width:0; text-transform:uppercase; letter-spacing:.06em; }
/* institute: create logins and requests */
.ia-add textarea{ width:100%; border:1px solid var(--line, #dfe5f2); border-radius:10px; padding:10px; font:14px/1.5 'Manrope',sans-serif; }
.ia-prev{ display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; min-height:4px; font-size:13px; }
.ia-n{ font-weight:800; color:#0b1b33; }
.ia-good{ color:#15803d; font-weight:700; }
.ia-bad{ color:#b42318; font-weight:600; }
.ia-ok{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; line-height:1.45; color:#33415c; margin:8px 0 10px; cursor:pointer; }
.ia-ok input{ margin-top:3px; width:17px; height:17px; flex:0 0 auto; }
.ia-btns{ display:flex; flex-wrap:wrap; gap:8px; }
.ia-foot{ margin-top:8px; }
.ia-req.has{ border:2px solid #f59e0b; }
.ia-req.has h4:after{ content:" · waiting"; color:#b45309; font-size:.8em; }
.ia-empty{ padding:14px; border-radius:12px; background:#f6f8fc; color:#5b6b85; font-size:14px; }
.ia-list{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ia-list li{ display:grid; grid-template-columns:1fr 180px auto; gap:12px; align-items:center; padding:12px 14px; border:1px solid #e3e9f5; border-radius:14px; background:#fff; }
.ia-who b{ display:block; font-size:15px; }
.ia-who small{ display:block; color:#5b6b85; font-size:12.5px; margin-top:2px; overflow-wrap:anywhere; }
.ia-minor{ display:inline-block; margin-top:5px; font-size:11.5px; font-weight:700; color:#8a5a00; background:#fff0c7; border-radius:99px; padding:2px 8px; }
.ia-grp{ border:1px solid #dfe5f2; border-radius:10px; padding:9px 10px; font:14px 'Manrope',sans-serif; min-width:0; }
.ia-acts{ display:flex; gap:6px; }
.ia-done{ margin-top:12px; font-size:13.5px; color:#33415c; }
.ia-done summary{ cursor:pointer; font-weight:700; }
.ia-done ul{ margin:8px 0 0; padding-left:18px; display:grid; gap:4px; }
.ia-creds{ max-height:340px; overflow:auto; }
.ia-creds td small{ display:block; color:#5b6b85; font-size:12px; }
.ia-id{ font-family:'JetBrains Mono','Sora',monospace; font-weight:700; white-space:nowrap; }
.ia-send{ white-space:nowrap; }
.ia-wa{ display:inline-block; padding:7px 12px; border-radius:10px; background:#25d366; color:#06361b; font-weight:800; font-size:13px; text-decoration:none; }
.ia-wa.sent{ background:#e9f9ef; color:#15803d; }
.ia-mailed{ display:inline-block; margin-left:6px; font-size:12px; font-weight:700; color:#15803d; }
@media(max-width:640px){
  .ia-list li{ grid-template-columns:1fr; }
  .ia-acts .btn{ flex:1; }
}
