.portal-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.72fr) minmax(440px,.88fr);background:radial-gradient(circle at 30% 26%,#fff 0,#f5f9ff 48%,#e8f1fd 100%);overflow:hidden}
.portal-intro{position:relative;min-height:100vh;padding:38px 58px;overflow:hidden}
.portal-intro:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 55%,rgba(229,240,254,.75));pointer-events:none}
.company-brand{position:relative;z-index:3;display:flex;align-items:center;gap:15px;color:#1456a8}.company-brand strong{display:block;font-size:25px;letter-spacing:5px}.company-brand small{display:block;margin-top:4px;font-size:9px;letter-spacing:6px}.company-mark{position:relative;width:61px;height:55px;display:grid;grid-template-columns:1fr 1fr;gap:4px;transform:skewY(-2deg)}.company-mark i{display:block;background:#185aa8}.company-mark i:first-child{background:#df2b31}.company-mark i:nth-child(2){clip-path:polygon(0 0,100% 0,100% 100%,15% 86%)}.company-mark i:nth-child(3){clip-path:polygon(0 0,90% 14%,100% 100%,0 100%)}
.intro-copy{position:relative;z-index:3;margin-top:55px}.intro-copy h1{font-size:52px;letter-spacing:3px;color:#1454a5;margin:0 0 17px}.intro-copy h2{font-size:26px;font-weight:500;letter-spacing:1px;color:#273a56;margin:0 0 32px}.intro-copy h3{font-size:22px;color:#1159b2;margin:0 0 10px}.intro-copy p{font-size:16px;letter-spacing:6px;color:#356495;margin:0 0 37px}.feature-line{display:flex;align-items:center;gap:18px;color:#1757a6;font-size:14px}.feature-line span{display:flex;align-items:center;gap:8px}.feature-line b{display:grid;place-items:center;min-width:28px;height:28px;border:2px solid #1a66bf;border-radius:5px}.feature-line i{width:1px;height:27px;background:#8ab5e6}
.blueprint{position:absolute;z-index:1;inset:175px 0 0 0}.blueprint svg{position:absolute;right:-10px;top:20px;width:73%;height:58%}.tower{position:absolute;border:1px solid rgba(27,122,219,.15);background:repeating-linear-gradient(0deg,transparent 0 17px,rgba(30,128,226,.08) 18px 19px),repeating-linear-gradient(90deg,transparent 0 22px,rgba(30,128,226,.06) 23px 24px)}.tower.t1{width:175px;height:300px;right:300px;bottom:130px}.tower.t2{width:130px;height:390px;right:150px;bottom:100px}.tower.t3{width:100px;height:250px;right:470px;bottom:115px}.base-building{position:absolute;left:-80px;right:80px;bottom:-70px;height:360px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(154,202,244,.92));clip-path:polygon(0 25%,55% 0,100% 35%,100% 100%,0 100%);border-top:8px solid #1a71bd;display:flex;align-items:flex-end;padding:0 80px;gap:22px;box-shadow:0 -10px 35px rgba(39,110,177,.12)}.base-building:before{content:"技术部";position:absolute;left:39%;top:55px;color:#0875c6;font-size:62px;font-weight:900;letter-spacing:15px;text-shadow:0 4px 0 #d3eafa}.base-building span{height:235px;flex:1;max-width:82px;background:linear-gradient(90deg,#1a4a72 0 28%,#bee0f5 29% 55%,#164a75 56% 100%);border:8px solid #edf7ff;border-bottom:0;transform:skewY(-1deg)}
.portal-card-wrap{position:relative;z-index:4;display:grid;place-items:center;padding:42px 60px}.portal-card{width:min(520px,100%);min-height:700px;padding:58px 52px 44px;background:rgba(255,255,255,.96);border:1px solid rgba(214,226,242,.9);border-radius:15px;box-shadow:0 14px 45px rgba(25,69,123,.18)}.auth-panel>h2{text-align:center;color:#1456aa;font-size:34px;letter-spacing:2px;margin:10px 0 34px}.role-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #cfd9e7;margin-bottom:38px}.role-tab{position:relative;border:0;background:none;color:#5e6a7f;font-size:17px;padding:13px;cursor:pointer}.role-tab.active{color:#105cb8;font-weight:700}.role-tab.active:after{content:"";position:absolute;left:26%;right:26%;bottom:-2px;height:3px;background:#1265c9;border-radius:2px}.auth-panel>label,.register-grid>label{display:block;font-size:14px;font-weight:700;margin-bottom:24px}.input-shell{height:53px;margin-top:11px;border:1px solid #cdd7e4;border-radius:7px;display:flex;align-items:center;padding:0 15px;background:#fff}.input-shell:focus-within{border-color:#1b6dcc;box-shadow:0 0 0 3px rgba(22,102,201,.09)}.input-shell>span{color:#aeb9c9;font-size:20px}.input-shell input,.input-shell select{height:100%;flex:1;min-width:0;border:0;box-shadow:none!important;padding:0 13px;background:transparent}.input-shell button{border:0;background:none;color:#9ca9ba;font-size:16px;cursor:pointer}.login-options{display:flex;align-items:center;justify-content:space-between;margin:-2px 0 30px;color:#465268;font-size:13px}.login-options label{display:flex;align-items:center;gap:7px}.login-options input{width:17px;height:17px;padding:0}.login-options button{border:0;background:none;color:#1263bd;cursor:pointer}.portal-submit{width:100%;height:58px;border:0;border-radius:6px;color:#fff;font-size:18px;font-weight:700;cursor:pointer;background:linear-gradient(90deg,#155bb4,#0f56b5);box-shadow:0 8px 20px rgba(13,84,176,.18)}.portal-submit:hover{filter:brightness(1.05)}.security-copy{text-align:center;color:#8a94a5;font-size:12px;margin:25px 0 18px}.account-tip{text-align:center;color:#8390a4;font-size:11px;padding:9px;background:#f6f9fd;border-radius:6px}
.auth-switch{text-align:center;margin-top:20px;color:#69768c;font-size:13px}.auth-switch button,.register-head button{border:0;background:none;color:#1263bd;font-weight:700;cursor:pointer}.register-head{text-align:center;position:relative;margin-bottom:22px}.register-head button{position:absolute;left:-8px;top:4px}.register-head h2{margin:0;color:#1456aa;font-size:30px;letter-spacing:2px}.register-head p{margin:8px 0 0;color:#8490a3;font-size:12px}.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.register-grid>label{margin-bottom:13px}.register-grid .input-shell{padding:0 10px}.auth-panel#registerForm>label{margin-bottom:13px}.verify-row{display:grid;grid-template-columns:1fr 116px;gap:10px}.verify-row .input-shell{margin-top:11px}.verify-row>button{height:53px;margin-top:11px;border:1px solid #1b69c8;border-radius:7px;background:#edf5ff;color:#1263bd;font-weight:700;cursor:pointer}.verify-row>button:disabled{border-color:#d5deea;color:#9aa6b8;background:#f3f5f8;cursor:not-allowed}.password-rules{display:flex;flex-wrap:wrap;gap:6px;margin:-5px 0 12px}.password-rules span{padding:4px 7px;border-radius:4px;background:#f2f5f9;color:#8c97a8;font-size:10px}.password-rules span.valid{background:#e9f8f1;color:#07845f}.register-submit{height:52px;font-size:16px;margin-top:3px}.register-notice{text-align:center;color:#8490a3;font-size:11px;margin:14px 0 0}
@media(max-width:1050px){.portal-login{grid-template-columns:1fr}.portal-intro{display:none}.portal-card-wrap{min-height:100vh;padding:25px;background:linear-gradient(145deg,#eef6ff,#dcecff)}.portal-card{min-height:auto}}
@media(max-width:560px){.portal-card-wrap{padding:14px}.portal-card{padding:34px 25px}.auth-panel>h2{font-size:28px}.role-tabs{margin-bottom:28px}.register-grid{grid-template-columns:1fr}.register-grid>label{margin-bottom:13px}}
