/* Member portal — FPT Event Club */
.header-right{gap:28px}
.header-contact{order:1}
.member-access{position:relative;order:2}
.menu-toggle{order:3}
.member-login,.member-account summary{display:flex;align-items:center;gap:10px;min-height:42px;font-size:9px;font-weight:650;letter-spacing:1px}
.member-login{padding-inline:15px;border:1px solid #ffffff45;transition:background .2s,border-color .2s}
.member-login:hover{background:#bb9aec20;border-color:var(--purple)}
.member-icon{position:relative;display:inline-block;flex:0 0 15px;width:15px;height:19px}
.member-icon::before{content:"";position:absolute;width:7px;height:7px;border:1px solid currentColor;border-radius:50%;left:4px;top:1px}
.member-icon::after{content:"";position:absolute;left:1px;bottom:1px;width:13px;height:8px;border:1px solid currentColor;border-radius:8px 8px 2px 2px}
.member-account summary{cursor:pointer;list-style:none;max-width:185px;color:var(--purple)}
.member-account summary::-webkit-details-marker{display:none}
.member-account summary>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-account-panel{position:absolute;top:calc(100% + 13px);right:0;width:280px;padding:22px;background:#21172c;border:1px solid #bb9aec55;box-shadow:0 15px 40px #0006}
.member-account-panel p{font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.member-account-panel a,.member-account-panel button{display:block;width:100%;text-align:left;font-size:11px;padding:15px 0;border-bottom:1px solid var(--line);background:none}
.member-account-panel button{color:var(--purple)}
.member-account-panel .member-account-error{color:#ffaab0;margin-top:10px}
.menu-link-recruitment{font-size:clamp(24px,3.4vw,49px);line-height:1.25}
.member-page .site-header{border-bottom:1px solid var(--line)}
.member-page main{min-height:calc(100vh - 230px)}
.member-footer{border-top:1px solid var(--line)}
.member-footer .footer-bottom{margin-top:28px}
.member-button{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:55px;width:100%;padding:17px 21px;background:var(--purple);color:#21122d;font-size:10px;letter-spacing:1px;font-weight:750;transition:background .2s}
.member-button:hover{background:#d0b6f1}
.member-button>span{font-size:24px;line-height:1}
.member-button:disabled{cursor:wait;opacity:.5}
.member-field{margin-top:24px}
.member-field label{display:block;font-size:12px;font-weight:550;margin-bottom:10px}
.member-field input,.member-field select,.member-field textarea{width:100%;border:1px solid #ffffff35;border-radius:0;background:#100d14;color:var(--paper);padding:16px;font:inherit;font-size:13px;line-height:1.5;color-scheme:dark}
.member-field input:focus,.member-field select:focus,.member-field textarea:focus{outline:2px solid var(--purple);outline-offset:2px}
.member-field input::placeholder,.member-field textarea::placeholder{color:#92879c}
.member-field textarea{resize:vertical;min-height:130px}
.member-field .member-field-hint{font-size:10px;color:var(--muted);margin-top:8px}
.member-form-status{font-size:12px;line-height:1.75;color:var(--muted)}
.member-form-status:empty{display:none}
.member-form-status[data-kind="error"]{color:#ffaab0}
.member-form-status[data-kind="success"]{color:#c9e9bb}
.login-shell{display:grid;grid-template-columns:1.25fr 1fr;gap:9%;padding-top:185px;padding-bottom:100px;align-items:start}
.login-story h1{font-size:clamp(44px,5.5vw,88px);line-height:1.05;font-weight:780;letter-spacing:-.06em;margin-top:30px}
.login-story h1 em{color:var(--purple);font-weight:650}
.login-intro{font-size:13px;line-height:1.9;max-width:465px;color:var(--muted);margin-top:30px}
.login-visual{height:210px;position:relative;margin-top:48px;overflow:hidden;border-top:1px solid var(--line)}
.login-visual>span{position:absolute;top:15px;font-size:190px;line-height:1;font-weight:850;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1px #bb9aec45}
.login-visual>b{position:absolute;right:9%;top:35px;font-size:110px;font-weight:500;line-height:1;color:var(--red);transform:rotate(-15deg)}
.login-visual>p{position:absolute;bottom:0;font-size:9px;letter-spacing:2px;color:var(--muted)}
.login-card{background:#1b1522;border:1px solid #ffffff29;padding:38px;box-shadow:0 30px 70px #0002}
.login-card h2{font-size:27px;font-weight:650;letter-spacing:-1px;line-height:1.2;margin-top:24px}
.login-card-intro{font-size:12px;line-height:1.8;color:var(--muted);margin-top:14px;margin-bottom:32px}
.password-field{position:relative}
.password-field input{padding-right:68px}
.password-field button{position:absolute;inset:1px 1px 1px auto;width:60px;font-size:9px;font-weight:650;letter-spacing:.8px;background:transparent;color:var(--purple)}
#member-login-form .member-form-status{margin-top:20px}
#member-login-form>.member-button{margin-top:27px}
.member-help{font-size:11px;line-height:1.9;color:var(--muted);margin-top:26px;padding-top:23px;border-top:1px solid var(--line)}
.member-help a{display:inline-block;color:var(--paper);text-decoration:underline;text-underline-offset:4px;margin-top:6px}
.member-session-notice>p{font-size:13px;line-height:1.8;overflow-wrap:anywhere;margin-bottom:22px}
.recruitment-hero{position:relative;isolation:isolate;overflow:hidden;padding-top:180px;padding-bottom:60px}
.recruitment-hero::after{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,#7943b71a,transparent 68%);right:-80px;top:80px;z-index:-1}
.recruitment-hero h1{font-size:clamp(46px,6.9vw,110px);line-height:1.02;letter-spacing:-.065em;font-weight:780;margin-top:32px}
.recruitment-hero h1 em{font-weight:650;color:var(--purple)}
.recruitment-hero-mark{position:absolute;z-index:-1;right:-25px;top:110px;font-size:430px;color:#bb9aec0c;line-height:1;transform:rotate(-18deg)}
.recruitment-hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px;border-top:1px solid var(--line);padding-top:26px;margin-top:45px}
.recruitment-hero-bottom>p{font-size:13px;line-height:1.85;color:var(--muted);max-width:460px}
.recruitment-hero-bottom>span{display:flex;align-items:center;gap:28px;font-size:9px;font-weight:550;letter-spacing:1.5px;white-space:nowrap}
.recruitment-hero-bottom b{font-size:36px;color:var(--red);font-weight:500}
.recruitment-content{padding-top:45px;padding-bottom:70px}
.recruitment-section-top{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}
.recruitment-section-top h2{font-size:clamp(26px,3.1vw,46px);font-weight:650;letter-spacing:-1.6px;line-height:1.2;margin-top:18px}
.recruitment-count{font-size:11px;color:var(--muted);white-space:nowrap}
.member-gate,.member-welcome{display:flex;align-items:center;gap:17px;padding:20px 23px;border:1px solid #bb9aec45;background:#bb9aec0a;margin-bottom:27px}
.member-gate>.member-icon{color:var(--purple)}
.member-gate>p,.member-welcome>p{font-size:12px;line-height:1.8;color:var(--muted)}
.member-gate>a,.member-welcome>a{margin-left:auto;font-size:9px;font-weight:650;letter-spacing:1px;white-space:nowrap}
.member-gate>a>span{color:var(--purple);font-size:19px;margin-left:15px}
.member-welcome strong{color:var(--paper)}
.recruitment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}
.recruitment-card{border:1px solid var(--line);padding:31px;display:flex;flex-direction:column;background:#1a1420}
.recruitment-card .eyebrow{color:var(--purple)}
.recruitment-card h3{font-size:27px;line-height:1.25;letter-spacing:-1px;margin:25px 0 18px;overflow-wrap:anywhere}
.recruitment-card-description{font-size:12px;line-height:1.85;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}
.recruitment-roles{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.recruitment-roles>span{padding:7px 10px;border:1px solid #ffffff2a;font-size:10px;line-height:1.5}
.recruitment-deadline{font-size:11px;color:var(--muted);margin-top:24px}
.recruitment-card-actions{padding-top:26px;margin-top:auto}
.recruitment-empty{padding:60px 25px 63px;border:1px solid var(--line);text-align:center;background:linear-gradient(140deg,#1c1425,#121016)}
.recruitment-empty>span{font-size:50px;line-height:1;color:var(--purple);display:block;margin-bottom:26px}
.recruitment-empty h3{font-size:26px;font-weight:600;letter-spacing:-.8px}
.recruitment-empty>p{margin-top:16px;font-size:12px;line-height:1.9;color:var(--muted)}
.recruitment-empty .text-link{margin-top:25px}
.applications-section{padding-top:35px;padding-bottom:70px;scroll-margin-top:115px}
.applications-list{border-top:1px solid var(--line)}
.application-item{display:grid;grid-template-columns:1fr auto;gap:15px 25px;padding:25px 0;border-bottom:1px solid var(--line)}
.application-item h3{font-size:20px;line-height:1.4;letter-spacing:-.5px;overflow-wrap:anywhere}
.application-item-meta{font-size:11px;color:var(--muted);line-height:1.8;margin-top:10px}
.application-status{display:inline-flex;align-items:center;align-self:start;justify-self:end;border:1px solid #bb9aec70;padding:8px 12px;font-size:10px;color:var(--purple)}
.application-item-message{font-size:12px;line-height:1.8;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;grid-column:1/-1}
.member-signoff{padding-top:38px;padding-bottom:50px;border-top:1px solid var(--line)}
.member-signoff>.eyebrow{color:var(--muted)}
.member-signoff>p:last-child{position:relative;font-size:clamp(40px,6vw,86px);letter-spacing:-.055em;line-height:1.05;font-weight:750;margin-top:20px}
.member-signoff em{color:var(--purple);font-weight:650}
.member-signoff>p>span{position:absolute;right:0;bottom:0;color:var(--red);font-size:1.2em}
.application-dialog{width:min(600px,calc(100% - 32px));max-height:calc(100svh - 44px);overflow:auto;padding:30px;border:1px solid #bb9aec60;background:#1b1522;color:var(--paper)}
.application-dialog::backdrop{background:#08060de3;backdrop-filter:blur(5px)}
.application-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}
.dialog-close{font-size:30px;font-weight:300;line-height:1;min-height:42px;min-width:42px;background:transparent;color:var(--muted)}
.application-dialog h2{font-size:27px;line-height:1.35;letter-spacing:-.8px;margin-top:18px;overflow-wrap:anywhere}
.application-account{font-size:11px;line-height:1.8;color:var(--muted);margin-top:15px;overflow-wrap:anywhere}
#application-form .member-form-status{margin-top:20px}
#application-form>.member-button{margin-top:26px}
.application-success{padding-top:26px}
.application-success>span{font-size:32px;color:var(--purple)}
.application-success h3{font-size:24px;margin-top:18px}
.application-success>p{font-size:12px;line-height:1.85;color:var(--muted);margin:16px 0 27px}
@media(max-width:1100px){.header-right{gap:19px}.header-contact{display:none}.login-shell{gap:6%;padding-top:155px}.login-card{padding:29px}.login-story h1{font-size:5.7vw}.recruitment-hero{padding-top:155px}}
@media(max-width:760px){
  .header-right{gap:17px}.member-login{padding:0;min-height:40px;border:0;gap:8px;font-size:8px;letter-spacing:.8px}.member-account summary{max-width:104px;font-size:9px}.member-account-panel{right:-52px;width:min(280px,calc(100vw - 50px))}.menu-label{display:none}.member-access .member-icon{transform:scale(.9)}
  .menu-link-recruitment{font-size:clamp(22px,6vw,34px);line-height:1.3}
  .login-shell{grid-template-columns:1fr;gap:35px;padding-top:130px;padding-bottom:55px}.login-story h1{font-size:clamp(42px,10.8vw,68px);margin-top:25px}.login-intro{font-size:12px;margin-top:23px}.login-visual{display:none}.login-card{padding:28px 24px}.login-card h2{font-size:27px}.login-card-intro{margin-bottom:26px}
  .member-field input,.member-field select,.member-field textarea{font-size:16px}.member-field label{font-size:12px}.password-field button{font-size:9px}
  .recruitment-hero{padding-top:135px;padding-bottom:35px}.recruitment-hero h1{font-size:clamp(39px,10.2vw,65px);margin-top:26px}.recruitment-hero-mark{font-size:300px;top:140px;right:-90px}.recruitment-hero-bottom{display:block;margin-top:32px;padding-top:22px}.recruitment-hero-bottom>p{font-size:12px}.recruitment-hero-bottom>span{margin-top:25px;justify-content:space-between;font-size:8px}
  .recruitment-content{padding-top:27px;padding-bottom:43px}.recruitment-section-top{display:block;margin-bottom:23px}.recruitment-section-top h2{font-size:29px;letter-spacing:-1px}.recruitment-count{margin-top:18px;font-size:10px}
  .member-gate,.member-welcome{align-items:start;flex-wrap:wrap;padding:19px;gap:12px;margin-bottom:23px}.member-gate>p,.member-welcome>p{flex:1;min-width:180px;font-size:11px}.member-gate>a,.member-welcome>a{margin-left:27px}.member-welcome .square{margin-top:6px}.member-welcome>a{margin-left:17px}
  .recruitment-grid{grid-template-columns:1fr;gap:19px}.recruitment-card{padding:25px 22px}.recruitment-card h3{font-size:25px}.recruitment-empty{padding:43px 21px}.recruitment-empty h3{font-size:22px}.recruitment-empty>p{font-size:11px}.recruitment-empty>p>br{display:none}.recruitment-empty>span{font-size:41px}
  .applications-section{padding-top:20px;padding-bottom:45px}.application-item{grid-template-columns:1fr;gap:12px}.application-item h3{font-size:19px}.application-status{justify-self:start}.application-item-message{font-size:11px}.member-signoff{padding-top:32px;padding-bottom:38px}.member-signoff>p:last-child{font-size:10vw}
  .application-dialog{padding:23px}.application-dialog h2{font-size:23px}.application-dialog-heading .eyebrow{font-size:8px}
}
@media(max-width:430px){.member-access .member-icon{display:none}.brand{gap:8px}.brand-label{font-size:8px;letter-spacing:.6px}.brand-label>span{font-size:5px;letter-spacing:1px}.brand img{width:49px}.header-right{gap:13px}.member-account summary{max-width:92px}}
