:root{--navy:#061e33;--c:#0b3d5c;--c2:#1b7a8c;--c3:#38c6d9;--bg:#fff;--alt:#f2f7fa;--tx:#1c2a36;--mu:#5b6c79;--bd:#e0e8ee;--r:18px;--sh:0 10px 30px rgba(6,30,51,.08);--shl:0 18px 44px rgba(6,30,51,.16);--f:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif;--fh:'Sora','Inter',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;font:16px/1.7 var(--f);color:var(--tx);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}a{color:var(--c2)}h1,h2,h3{font-family:var(--fh);line-height:1.2;color:var(--c);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3vw,2.3rem);margin:.2em 0 .8em}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px;position:relative}.narrow{max-width:780px}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{width:auto;height:auto;clip-path:none;inset-inline-start:8px;top:8px;background:#fff;padding:8px 14px;z-index:99;border-radius:8px}
/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;transition:.3s;background:transparent}
.hdr.scrolled,body:not(:has(.hero)) .hdr{background:rgba(255,255,255,.92);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--bd)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{font:500 1.5rem var(--fh);color:#fff;text-decoration:none;transition:.3s}.brand b{color:var(--c3)}
.hdr.scrolled .brand,body:not(:has(.hero)) .brand{color:var(--c)}.hdr.scrolled .brand b,body:not(:has(.hero)) .brand b{color:var(--c2)}
.nav{display:flex;gap:18px;align-items:center}.nav a{white-space:nowrap;color:rgba(255,255,255,.88);text-decoration:none;font-size:.92rem;font-weight:500;position:relative}
.hdr.scrolled .nav a,body:not(:has(.hero)) .nav a{color:var(--tx)}
.nav a:not(.btn)::after{content:"";position:absolute;inset-inline-start:0;bottom:-4px;height:2px;width:0;background:var(--c3);transition:.25s}.nav a:not(.btn):hover::after{width:100%}
.nav-toggle,.burger{display:none}.burger{font-size:1.7rem;cursor:pointer;color:#fff}.hdr.scrolled .burger,body:not(:has(.hero)) .burger{color:var(--c)}
/* buttons */
.btn{display:inline-block;background:linear-gradient(135deg,var(--c),var(--c2));color:#fff!important;padding:13px 26px;border-radius:999px;text-decoration:none;border:0;font:600 .95rem var(--f);cursor:pointer;transition:.25s;box-shadow:0 6px 18px rgba(27,122,140,.3)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,122,140,.4)}.btn-sm{padding:8px 18px;font-size:.85rem}
.btn-light{background:#fff;color:var(--c)!important;box-shadow:0 6px 18px rgba(0,0,0,.2)}.btn-ghost{background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.7);box-shadow:none}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.nav .btn{box-shadow:none}
/* hero */
.hero{position:relative;background:radial-gradient(1000px 500px at 80% 10%,#14607a 0%,transparent 60%),linear-gradient(160deg,var(--navy),var(--c) 70%);color:#fff;padding:150px 0 130px;overflow:hidden}
#net{position:absolute;inset:0;width:100%;height:100%}.hero-glow{position:absolute;width:520px;height:520px;right:-120px;top:-140px;background:radial-gradient(circle,rgba(56,198,217,.35),transparent 65%);animation:pulse 7s ease-in-out infinite}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.7rem);margin:.3em 0;animation:up .9s both}
.eyebrow,.kicker{display:inline-block;font:600 .78rem var(--f);letter-spacing:.14em;text-transform:uppercase;color:var(--c3)}
.eyebrow{background:rgba(255,255,255,.1);padding:6px 14px;border-radius:16px;line-height:1.5;animation:up .7s both}.kicker{color:var(--c2)}.kicker.light{color:var(--c3)}
.lead{font-size:1.15rem;max-width:660px;color:rgba(255,255,255,.86);animation:up 1s .1s both}.hero .actions{animation:up 1s .25s both}
.wave{position:absolute;bottom:-1px;left:0;right:0;line-height:0}.wave svg{width:100%;height:70px}
/* orbit */
.orbit{position:relative;aspect-ratio:1;max-width:420px;width:100%;margin-inline-start:auto}
.ring{position:absolute;border:1.5px dashed rgba(255,255,255,.25);border-radius:50%;animation:spin 40s linear infinite}
.r1{inset:0}.r2{inset:15%;animation-duration:30s;animation-direction:reverse}.r3{inset:30%;animation-duration:22s}
.core{position:absolute;inset:38%;background:linear-gradient(135deg,var(--c2),var(--c3));border-radius:50%;display:grid;place-items:center;font:500 1.05rem var(--fh);box-shadow:0 0 60px rgba(56,198,217,.6);animation:pulse 4s ease-in-out infinite}.core b{color:#fff}
.sat{position:absolute;width:64px;height:64px;padding:14px;border-radius:18px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);color:#fff;animation:float 6s ease-in-out infinite}
.s1{top:2%;left:42%}.s2{top:30%;right:0;animation-delay:-1s}.s3{bottom:6%;right:16%;animation-delay:-2s}.s4{bottom:6%;left:14%;animation-delay:-3s}.s5{top:30%;left:0;animation-delay:-4s}
/* stats */
.statband{margin-top:-10px;padding:20px 0 0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;background:#fff;border-radius:var(--r);box-shadow:var(--shl);padding:28px;margin-top:-50px;z-index:3}
.stat{text-align:center}.stat b{display:block;font:700 2.4rem var(--fh);background:linear-gradient(135deg,var(--c),var(--c3));-webkit-background-clip:text;background-clip:text;color:transparent}.stat span{color:var(--mu);font-size:.9rem}
/* sections */
.sec{padding:84px 0}.alt{background:var(--alt)}
.pagehead{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--navy),var(--c) 75%);padding:130px 0 64px;color:#fff}
.pagehead h1{color:#fff;font-size:clamp(2rem,4.5vw,3rem);margin:0 0 10px;animation:up .8s both}.pagehead .lead{margin:0;animation:up .8s .1s both}
.pagehead::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1.2px,transparent 1.3px);background-size:26px 26px;mask-image:linear-gradient(90deg,transparent,#000)}
.ph-orb{position:absolute;border-radius:50%;filter:blur(2px);animation:float 9s ease-in-out infinite}.o1{width:260px;height:260px;right:6%;top:-70px;background:radial-gradient(circle,rgba(56,198,217,.5),transparent 70%)}.o2{width:160px;height:160px;right:24%;bottom:-60px;background:radial-gradient(circle,rgba(255,255,255,.2),transparent 70%);animation-delay:-3s}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.split-art svg{width:100%;filter:drop-shadow(0 20px 30px rgba(6,30,51,.25));animation:float 7s ease-in-out infinite}
/* cards */
.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.grid-4{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.card{display:block;position:relative;background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:26px;color:inherit;text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s;overflow:hidden}
.card::before{content:"";position:absolute;inset-inline-start:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--c2),var(--c3));transition:.4s}
a.card:hover,.card:hover{box-shadow:var(--shl);transform:translateY(-6px);border-color:transparent}.card:hover::before{width:100%}
.card h3{margin:.4em 0;font-size:1.15rem}.card p{margin:.4em 0;color:var(--mu);font-size:.95rem}.card>img{border-radius:12px;margin:-6px 0 12px;width:100%;aspect-ratio:16/9;object-fit:cover}.card .logo{max-height:48px;width:auto}
.ico{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,#e2f4f7,#cfe9f0);color:var(--c);padding:13px;transition:.3s}.ico svg{width:100%;height:100%}
.card:hover .ico{background:linear-gradient(135deg,var(--c2),var(--c3));color:#fff;transform:rotate(-6deg) scale(1.06)}
.more{display:inline-block;margin-top:8px;font-weight:600;color:var(--c2);font-size:.9rem}
.feat{background:linear-gradient(180deg,#fff,#f6fbfc)}
.svc-head{display:flex;align-items:center;gap:16px;margin-bottom:6px}.svc-head h2{margin:0}
.tag{display:inline-block;background:#e3f4f7;color:var(--c);border-radius:999px;padding:3px 12px;font-size:.76rem;font-weight:600}.tag-s{background:#eef1f4;color:var(--mu)}
.muted,.empty{color:var(--mu)}.hero-img{border-radius:var(--r);margin:16px 0;box-shadow:var(--sh)}
/* process */
.process{background:linear-gradient(160deg,var(--navy),var(--c));color:#fff}.process h2{color:#fff}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;counter-reset:s}
.step{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:26px;transition:.3s}.step:hover{background:rgba(255,255,255,.13);transform:translateY(-5px)}
.step i{font:700 2.2rem var(--fh);font-style:normal;color:var(--c3)}.step h3{color:#fff;margin:.2em 0}.step p{color:rgba(255,255,255,.75);margin:0}
/* misc */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.chip{padding:8px 16px;border:1px solid var(--bd);border-radius:999px;text-decoration:none;color:var(--tx);font-size:.9rem;font-weight:500;transition:.2s;background:#fff}.chip:hover{border-color:var(--c2)}.chip.on{background:var(--c);color:#fff;border-color:var(--c)}
.person{text-align:center}.person img,.avatar{width:104px;height:104px;border-radius:50%;object-fit:cover;margin:0 auto 8px;aspect-ratio:1}.avatar{background:linear-gradient(135deg,var(--c2),var(--c3));color:#fff;font:600 2.4rem var(--fh);display:flex;align-items:center;justify-content:center}
.publist{list-style:none;padding:0}.pub{padding:18px 0;border-bottom:1px solid var(--bd)}
.form{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:30px;box-shadow:var(--sh)}.form .field{margin-bottom:18px}.form label{display:block;font-weight:600;margin-bottom:5px;font-size:.92rem}
.form input,.form select,.form textarea{width:100%;padding:12px 14px;border:1.5px solid var(--bd);border-radius:12px;font:inherit;transition:.2s;background:#fbfdfe}.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--c2);box-shadow:0 0 0 4px rgba(27,122,140,.15)}
.errorlist{color:#b3261e;list-style:none;padding:0;margin:4px 0;font-size:.88rem}.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0}
/* cta + footer */
.cta{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--c),var(--c2));color:#fff;padding:84px 0;text-align:center}.cta h2{color:#fff}.cta p{max-width:620px;margin:0 auto 28px;color:rgba(255,255,255,.88)}.cta .btn-ghost{margin-inline-start:6px}
.cta-orb{position:absolute;width:420px;height:420px;border-radius:50%;left:-120px;bottom:-200px;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);animation:pulse 8s ease-in-out infinite}
.ftr{background:var(--navy);color:#b8cdd9;padding:56px 0 0}.ftr a{color:#b8cdd9;display:block;text-decoration:none;padding:2px 0;transition:.2s}.ftr a:hover{color:#fff;transform:translateX(4px)}.ftr strong{color:#fff;display:block;margin-bottom:10px;font-family:var(--fh)}
.ftr-in{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.copy{padding:22px;margin-top:34px;border-top:1px solid #153754;font-size:.85rem}
/* animation */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s var(--d,0ms),transform .7s var(--d,0ms)}.rv.in{opacity:1;transform:none}
.card.rv.in{transition:opacity .7s var(--d,0ms),transform .3s,box-shadow .3s,border-color .3s}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-14px)}}@keyframes pulse{50%{opacity:.6;transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
@media(max-width:1180px){.burger{display:block}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:18px 22px;box-shadow:var(--shl)}.nav a{color:var(--tx)!important}.nav-toggle:checked~.nav{display:flex}}
@media(max-width:860px){.hero{padding:120px 0 100px}.hero-grid,.split{grid-template-columns:1fr}.orbit{max-width:300px;margin:20px auto 0}.sec{padding:56px 0}}

/* language switcher + arrows */
.nav a.lang{border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:4px 14px;font-weight:600}
.hdr.scrolled .nav a.lang,body:not(:has(.hero)) .nav a.lang{border-color:var(--bd)}
.nav a.lang::after{display:none}
.more.arrow::after,.back::before{display:inline-block;transition:transform .25s}
.more.arrow::after{content:" \2192"}.card:hover .more.arrow::after{transform:translateX(4px)}
.back::before{content:"\2190"}
/* ===== Arabic / RTL ===== */
html[dir=rtl] body{font-family:'Cairo','Inter',system-ui,'Segoe UI',Tahoma,sans-serif;line-height:1.95;font-size:17px}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3,html[dir=rtl] .brand,html[dir=rtl] .core,html[dir=rtl] .stat b,html[dir=rtl] .step i,html[dir=rtl] .avatar,html[dir=rtl] .ftr strong{font-family:'Cairo','Sora',system-ui,sans-serif;letter-spacing:0}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3{line-height:1.45;font-weight:700}
html[dir=rtl] .eyebrow,html[dir=rtl] .kicker{letter-spacing:0;text-transform:none;font-size:.92rem}
html[dir=rtl] .brand{direction:ltr;unicode-bidi:isolate}
html[dir=rtl] .nav a{font-size:.98rem}
html[dir=rtl] .nav a.lang{font-family:'Inter',sans-serif}
html[dir=rtl] .btn{font-family:'Cairo',sans-serif;font-size:1rem}
html[dir=rtl] .more.arrow::after{content:" \2190"}html[dir=rtl] .card:hover .more.arrow::after{transform:translateX(-4px)}
html[dir=rtl] .back::before{content:"\2192"}
html[dir=rtl] .ftr a:hover{transform:translateX(-4px)}
html[dir=rtl] .hero-glow{right:auto;left:-120px}
html[dir=rtl] .o1{right:auto;left:6%}html[dir=rtl] .o2{right:auto;left:24%}
html[dir=rtl] .pagehead::before{mask-image:linear-gradient(270deg,transparent,#000)}
html[dir=rtl] .wave svg{transform:scaleX(-1)}
html[dir=rtl] .split-art svg{transform:scaleX(-1)}
html[dir=rtl] .form input[type=email],html[dir=rtl] .form input[name=website]{direction:ltr;text-align:right}
html[dir=rtl] .form select{background-position:left 12px center}
html[dir=rtl] ul{padding-inline-start:1.4em}
/* ===== features: dropdown, search, toasts, newsletter, filters ===== */
.more-menu{position:relative}.more-btn{background:none;border:0;font:500 .92rem var(--f);color:rgba(255,255,255,.88);cursor:pointer;padding:0}
.hdr.scrolled .more-btn,body:not(:has(.hero)) .more-btn{color:var(--tx)}html[dir=rtl] .more-btn{font-family:'Cairo',sans-serif;font-size:.98rem}
.dropdown{display:none;position:absolute;top:100%;inset-inline-start:-14px;min-width:200px;padding:10px;margin-top:10px;background:#fff;border-radius:14px;box-shadow:var(--shl);border:1px solid var(--bd)}
.dropdown::before{content:"";position:absolute;inset:-12px 0 auto 0;height:12px}
.more-menu:hover .dropdown,.more-menu:focus-within .dropdown{display:block}
.dropdown a{display:block;color:var(--tx)!important;padding:8px 12px;border-radius:8px}.dropdown a:hover{background:var(--alt)}.dropdown a::after{display:none}
.search-link{display:inline-grid;place-items:center}
.toasts{position:fixed;top:84px;inset-inline:0;z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:14px;align-items:center;background:#0b3d5c;color:#fff;padding:12px 20px;border-radius:12px;box-shadow:var(--shl);animation:up .5s both}.toast.error{background:#b3261e}.toast.success{background:#14705a}
.toast button{background:none;border:0;color:#fff;font-size:1.3rem;cursor:pointer;line-height:1}
.news-box{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:26px;margin-bottom:34px;border-radius:var(--r);background:linear-gradient(135deg,#0d3f5e,#11587a);color:#fff}
.news-box strong{margin:0}.news-box p{margin:2px 0 0;color:#cfe0e8}
.news-form{display:flex;gap:8px;flex:1;max-width:460px}.news-form input[type=email]{flex:1;min-width:0;padding:11px 16px;border-radius:999px;border:0;font:inherit}
.news-form .btn{box-shadow:none;background:var(--c3);color:var(--navy)!important}
.seats{font-weight:600;color:var(--c2);margin:.4em 0}.seats.full{color:#b3261e}
.searchbox{display:flex;gap:10px;margin-bottom:24px}.searchbox input{flex:1;padding:14px 18px;border:1.5px solid var(--bd);border-radius:999px;font:inherit}.searchbox input:focus{outline:0;border-color:var(--c2);box-shadow:0 0 0 4px rgba(27,122,140,.15)}
.results{list-style:none;padding:0}.results li{padding:12px 0;border-bottom:1px solid var(--bd)}.results a{font-weight:600}.results span{display:block;color:var(--mu);font-size:.92rem}
.pubfilters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:28px}.pubfilters select{padding:9px 14px;border:1.5px solid var(--bd);border-radius:999px;font:inherit;background:#fff;max-width:100%}
.cite{display:inline-flex;gap:6px;margin-inline-start:8px}.cite-btn{border:1px solid var(--bd);background:#fff;border-radius:999px;padding:2px 12px;font:600 .75rem var(--f);color:var(--c);cursor:pointer;transition:.2s}.cite-btn:hover{background:var(--c);color:#fff}
@media(max-width:1180px){.dropdown{display:block;position:static;box-shadow:none;border:0;padding:0 0 0 12px;margin:0;background:transparent}html[dir=rtl] .dropdown{padding:0 12px 0 0}.more-btn{display:none}.dropdown::before{display:none}.nav a.lang{border-color:var(--bd)}.news-form{max-width:none}}
.back{display:inline-block}.back::before{display:inline-block;margin-inline-end:6px}
/* ===== trust: map, profile, marquee, cookie, draft ===== */
.map{height:460px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shl);border:1px solid var(--bd);z-index:1}
.pin{display:block;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--c2),var(--c3));border:3px solid #fff;box-shadow:0 0 0 0 rgba(56,198,217,.6),0 2px 8px rgba(0,0,0,.35);animation:ping 2.4s infinite}
@keyframes ping{70%{box-shadow:0 0 0 14px rgba(56,198,217,0),0 2px 8px rgba(0,0,0,.35)}100%{box-shadow:0 0 0 0 rgba(56,198,217,0),0 2px 8px rgba(0,0,0,.35)}}
.pin-wrap{background:transparent;border:0}.leaflet-popup-content{font:14px/1.5 var(--f)}html[dir=rtl] .leaflet-popup-content{font-family:'Cairo',sans-serif;text-align:right}
.mapsec{padding-bottom:0}
.profile-head{display:flex;gap:24px;align-items:center;margin-bottom:12px}.profile-head img,.profile-head .avatar{width:140px;height:140px;border-radius:50%;object-fit:cover;flex:none;margin:0}.profile-head .avatar{font-size:3.4rem}
.profile .links{display:flex;gap:8px;flex-wrap:wrap}
.partners{padding-bottom:60px}.marquee{overflow:hidden;margin-top:18px;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;gap:56px;width:max-content;animation:marquee 38s linear infinite;align-items:center;padding:10px 0}.marquee:hover .marquee-track{animation-play-state:paused}
.plogo{display:grid;place-items:center;height:64px;filter:grayscale(1);opacity:.65;transition:.3s}.plogo:hover{filter:none;opacity:1}.plogo img{max-height:64px;max-width:160px;width:auto;border-radius:0;margin:0}
@keyframes marquee{to{transform:translateX(-50%)}}html[dir=rtl] .marquee-track{animation-name:marquee-rtl}@keyframes marquee-rtl{to{transform:translateX(50%)}}
.cookie{position:fixed;inset-inline:16px;bottom:16px;z-index:80;max-width:720px;margin-inline:auto;background:#fff;color:var(--tx);border:1px solid var(--bd);border-radius:16px;box-shadow:var(--shl);padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;animation:up .5s both}
.cookie[hidden]{display:none}.cookie p{margin:0;flex:1;min-width:240px;font-size:.92rem}.cookie-actions{display:flex;gap:8px}
.btn-ghost-dark{background:transparent;color:var(--c)!important;border:1.5px solid var(--bd);box-shadow:none}
.draft-banner{position:sticky;top:72px;z-index:40;background:#fff3cd;color:#664d03;text-align:center;padding:8px 16px;font-weight:600;border-bottom:1px solid #ffe69c}
.captcha{margin:8px 0 16px}
@media(max-width:600px){.profile-head{flex-direction:column;text-align:center}.map{height:340px}}
.stat b span{font-size:inherit;color:inherit;display:inline;background:none}
/* ---- student portal ---- */
.pagehead-sm{padding:108px 0 34px}.pagehead-sm h1{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}
.portal{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:start}
.portal-nav{position:sticky;top:96px;background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:18px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:2px}
.portal-nav a{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:12px;color:var(--tx);text-decoration:none;font-weight:600;font-size:.93rem;transition:.2s}
.portal-nav a:hover{background:var(--alt)}.portal-nav a.on{background:linear-gradient(135deg,var(--c2),var(--c3));color:#fff}
.portal-nav .who{display:flex;gap:12px;align-items:center;margin:0 0 12px;padding-bottom:14px;border-bottom:1px solid var(--bd)}.portal-nav .who span:last-child{display:flex;flex-direction:column;min-width:0}.portal-nav small{color:var(--mu);overflow:hidden;text-overflow:ellipsis}
.avatar-sm{width:40px;height:40px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.badge{background:#e5484d;color:#fff;border-radius:999px;padding:0 8px;font-size:.72rem;line-height:1.7}
.linkbtn{background:none;border:0;color:var(--c2);cursor:pointer;font:inherit;font-weight:600;padding:10px 14px;text-align:start}.linkbtn:hover{text-decoration:underline}
.pstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:22px}.pstats div{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:18px 22px;box-shadow:var(--sh)}.pstats b{display:block;font:700 2rem var(--fh);color:var(--c)}.pstats span{color:var(--mu);font-size:.88rem}
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.pcard{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:20px 24px;box-shadow:var(--sh);margin-bottom:16px}.pgrid .pcard{margin:0}.pcard.wide{grid-column:1/-1}.pcard h3{margin:.1em 0 .6em}
.row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:.5em 0;padding:8px 0;border-bottom:1px dashed var(--bd)}.row:last-child{border-bottom:0}.row small{color:var(--mu);white-space:nowrap}.row.unread{font-weight:700}
.st{display:inline-block;border-radius:999px;padding:3px 12px;font-size:.76rem;font-weight:700;background:#eef1f4;color:#44525e;white-space:nowrap}
.st-approved,.st-completed,.st-running{background:#dff5ec;color:#0d6b4f}.st-pending,.st-submitted,.st-in_review,.st-waitlist{background:#fff1d6;color:#8a5a00}.st-rejected,.st-cancelled{background:#fde4e2;color:#a3221b}
.notice{background:#eaf6f9;border:1px solid #bfe3ea;border-radius:14px;padding:14px 18px;margin:16px 0}.notice p{margin:.3em 0 0}
.btn-ghost{background:transparent;color:var(--c);border:1.5px solid var(--c2)}.btn-ghost:hover{background:var(--alt);box-shadow:none}
.auth .form{margin-bottom:16px}.help{display:block;color:var(--mu);font-size:.8rem;margin-top:4px}.errorlist{color:#b3261e;list-style:none;padding:0;margin:4px 0 0;font-size:.85rem}
.nav-account{font-weight:600}
@media(max-width:860px){.portal{grid-template-columns:1fr}.portal-nav{position:static;flex-direction:row;flex-wrap:wrap}.portal-nav .who{width:100%}}
.btn.btn-outline{background:transparent;color:var(--c);border:1.5px solid var(--c2);box-shadow:none}.btn.btn-outline:hover{background:var(--c);color:#fff;border-color:var(--c);box-shadow:none}
.nav a.btn:not(.btn-outline){color:#fff}
/* sign-in button: clearly visible on the transparent hero header and on the light scrolled header */
.hdr .nav a.btn-outline{color:#fff;background:rgba(255,255,255,.16);border:1.5px solid #fff;font-weight:700}.hdr .nav a.btn-outline:hover{background:#fff;color:var(--c)}
.hdr.scrolled .nav a.btn-outline,body:not(:has(.hero)) .hdr .nav a.btn-outline{color:var(--c);background:transparent;border-color:var(--c2)}
.hdr.scrolled .nav a.btn-outline:hover,body:not(:has(.hero)) .hdr .nav a.btn-outline:hover{background:var(--c);color:#fff}
@media(max-width:900px){.hdr .nav a.btn-outline{color:var(--c);background:transparent;border-color:var(--c2)}}
.nav a.nav-login{font-weight:600}
@media(min-width:901px) and (max-width:1440px){.hdr .nav{gap:10px}.hdr .nav>a,.hdr .more-btn{font-size:.86rem}.hdr .nav .btn-sm{padding:7px 14px;font-size:.82rem;white-space:nowrap}.hdr-in{gap:10px}}
.or{display:flex;align-items:center;gap:12px;color:var(--mu);margin:18px 0;font-size:.85rem}.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--bd)}
.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;color:var(--tx)!important;border-color:var(--bd)!important;background:#fff!important}.google-btn:hover{background:var(--alt)!important}.fb-note{color:#b3261e;min-height:1.4em}
