@@ -3540,3 +3540,316 @@ body {
35403540 color : var (--muted , # 6b7280 );
35413541}
35423542
3543+ /* ================
3544+ Auth split layout (Feishu style)
3545+ ================ */
3546+ .auth-split-bg {
3547+ min-height : 100svh ;
3548+ background : # f0f2f5 ;
3549+ display : flex;
3550+ align-items : center;
3551+ justify-content : center;
3552+ padding : 24px ;
3553+ }
3554+
3555+ [data-theme = 'dark' ] .auth-split-bg {
3556+ background : # 0f1114 ;
3557+ }
3558+
3559+ .auth-split-card {
3560+ display : flex;
3561+ width : 780px ;
3562+ max-width : 100% ;
3563+ background : # fff ;
3564+ border-radius : 12px ;
3565+ overflow : hidden;
3566+ box-shadow : 0 2px 20px rgba (0 , 0 , 0 , 0.06 );
3567+ }
3568+
3569+ [data-theme = 'dark' ] .auth-split-card {
3570+ background : # 1a1a1a ;
3571+ box-shadow : 0 2px 20px rgba (0 , 0 , 0 , 0.35 );
3572+ }
3573+
3574+ /* Brand panel (left) */
3575+ .auth-brand {
3576+ width : 340px ;
3577+ flex-shrink : 0 ;
3578+ background : linear-gradient (160deg , # 3370ff, # 5b47b0 );
3579+ color : # fff ;
3580+ padding : 56px 40px ;
3581+ display : flex;
3582+ flex-direction : column;
3583+ justify-content : center;
3584+ }
3585+
3586+ .auth-brand-logo {
3587+ width : 48px ;
3588+ height : 48px ;
3589+ background : rgba (255 , 255 , 255 , 0.18 );
3590+ border-radius : 12px ;
3591+ display : flex;
3592+ align-items : center;
3593+ justify-content : center;
3594+ font-size : 24px ;
3595+ margin-bottom : 24px ;
3596+ }
3597+
3598+ .auth-brand-title {
3599+ font-size : 26px ;
3600+ font-weight : 700 ;
3601+ letter-spacing : -0.02em ;
3602+ margin-bottom : 12px ;
3603+ }
3604+
3605+ .auth-brand-sub {
3606+ font-size : 14px ;
3607+ line-height : 1.8 ;
3608+ opacity : 0.82 ;
3609+ white-space : pre-line;
3610+ }
3611+
3612+ .auth-brand-footer {
3613+ font-size : 12px ;
3614+ opacity : 0.5 ;
3615+ margin-top : 40px ;
3616+ }
3617+
3618+ /* Form panel (right) */
3619+ .auth-form {
3620+ flex : 1 ;
3621+ min-width : 0 ;
3622+ padding : 48px 44px ;
3623+ }
3624+
3625+ /* Underline tabs */
3626+ .auth-tabs {
3627+ display : flex;
3628+ gap : 32px ;
3629+ border-bottom : 1px solid # ebecef ;
3630+ margin-bottom : 28px ;
3631+ }
3632+
3633+ [data-theme = 'dark' ] .auth-tabs {
3634+ border-bottom-color : # 2a2a2e ;
3635+ }
3636+
3637+ .auth-tab {
3638+ padding : 0 0 12px ;
3639+ font-size : 15px ;
3640+ cursor : pointer;
3641+ border : none;
3642+ background : none;
3643+ font-weight : 400 ;
3644+ color : # 8f959e ;
3645+ margin-bottom : -1px ;
3646+ border-bottom : 2px solid transparent;
3647+ transition : color 0.2s ;
3648+ font-family : inherit;
3649+ }
3650+
3651+ .auth-tab : hover {
3652+ color : # 646a73 ;
3653+ }
3654+
3655+ [data-theme = 'dark' ] .auth-tab : hover {
3656+ color : # bbb ;
3657+ }
3658+
3659+ .auth-tab .active {
3660+ font-weight : 600 ;
3661+ color : # 1f2329 ;
3662+ border-bottom-color : # 3370ff ;
3663+ }
3664+
3665+ [data-theme = 'dark' ] .auth-tab .active {
3666+ color : # e5e7eb ;
3667+ }
3668+
3669+ /* Form fields */
3670+ .auth-field {
3671+ margin-bottom : 20px ;
3672+ }
3673+
3674+ .auth-label {
3675+ font-size : 13px ;
3676+ color : # 646a73 ;
3677+ font-weight : 500 ;
3678+ margin-bottom : 6px ;
3679+ }
3680+
3681+ [data-theme = 'dark' ] .auth-label {
3682+ color : # 9ca3af ;
3683+ }
3684+
3685+ .auth-input {
3686+ width : 100% ;
3687+ padding : 10px 14px ;
3688+ border : 1px solid # dee0e3 ;
3689+ border-radius : 8px ;
3690+ font-size : 14px ;
3691+ outline : none;
3692+ box-sizing : border-box;
3693+ background : # f5f6f7 ;
3694+ color : # 1f2329 ;
3695+ transition : border-color 0.2s , background 0.2s ;
3696+ font-family : inherit;
3697+ }
3698+
3699+ .auth-input ::placeholder {
3700+ color : # bbb ;
3701+ }
3702+
3703+ .auth-input : focus {
3704+ border-color : # 3370ff ;
3705+ background : # fff ;
3706+ }
3707+
3708+ [data-theme = 'dark' ] .auth-input {
3709+ background : # 2a2a2e ;
3710+ border-color : # 3a3a3e ;
3711+ color : # e5e7eb ;
3712+ }
3713+
3714+ [data-theme = 'dark' ] .auth-input : focus {
3715+ background : # 1f1f22 ;
3716+ border-color : # 3370ff ;
3717+ }
3718+
3719+ /* Submit button */
3720+ .auth-submit {
3721+ width : 100% ;
3722+ padding : 10px 0 ;
3723+ border-radius : 8px ;
3724+ background : # 3370ff ;
3725+ color : # fff ;
3726+ font-weight : 600 ;
3727+ font-size : 15px ;
3728+ border : none;
3729+ cursor : pointer;
3730+ letter-spacing : 0.5px ;
3731+ transition : background 0.2s ;
3732+ font-family : inherit;
3733+ }
3734+
3735+ .auth-submit : hover {
3736+ background : # 2860e0 ;
3737+ }
3738+
3739+ .auth-submit : disabled {
3740+ opacity : 0.6 ;
3741+ cursor : not-allowed;
3742+ }
3743+
3744+ [data-theme = 'dark' ] .auth-submit : hover {
3745+ background : # 4a7fff ;
3746+ }
3747+
3748+ /* Footer links */
3749+ .auth-footer {
3750+ display : flex;
3751+ justify-content : space-between;
3752+ align-items : center;
3753+ margin-top : 18px ;
3754+ font-size : 13px ;
3755+ }
3756+
3757+ .auth-link {
3758+ color : # 3370ff ;
3759+ cursor : pointer;
3760+ border : none;
3761+ background : none;
3762+ padding : 0 ;
3763+ font : inherit;
3764+ text-decoration : none;
3765+ }
3766+
3767+ .auth-link : hover {
3768+ text-decoration : underline;
3769+ }
3770+
3771+ .auth-muted {
3772+ color : # 8f959e ;
3773+ }
3774+
3775+ [data-theme = 'dark' ] .auth-muted {
3776+ color : # 6b7280 ;
3777+ }
3778+
3779+ /* Error / Success alerts */
3780+ .auth-alert {
3781+ padding : 10px 14px ;
3782+ border-radius : 8px ;
3783+ font-size : 13px ;
3784+ display : flex;
3785+ align-items : center;
3786+ gap : 8px ;
3787+ margin-bottom : 16px ;
3788+ }
3789+
3790+ .auth-alert--error {
3791+ background : # fff2f0 ;
3792+ border : 1px solid # ffccc7 ;
3793+ color : # cf1322 ;
3794+ }
3795+
3796+ [data-theme = 'dark' ] .auth-alert--error {
3797+ background : # 2c1618 ;
3798+ border-color : # 5c2022 ;
3799+ color : # f5c6cb ;
3800+ }
3801+
3802+ .auth-alert--success {
3803+ background : # f6ffed ;
3804+ border : 1px solid # b7eb8f ;
3805+ color : # 389e0d ;
3806+ }
3807+
3808+ [data-theme = 'dark' ] .auth-alert--success {
3809+ background : # 162c18 ;
3810+ border-color : # 2c5c20 ;
3811+ color : # c6f5ca ;
3812+ }
3813+
3814+ /* Email hint */
3815+ .auth-hint {
3816+ margin-top : 6px ;
3817+ font-size : 12px ;
3818+ color : # bbb ;
3819+ }
3820+
3821+ [data-theme = 'dark' ] .auth-hint {
3822+ color : # 666 ;
3823+ }
3824+
3825+ /* Auth terms */
3826+ .auth-terms {
3827+ text-align : center;
3828+ font-size : 13px ;
3829+ color : # 8f959e ;
3830+ margin-top : 16px ;
3831+ }
3832+
3833+ [data-theme = 'dark' ] .auth-terms {
3834+ color : # 6b7280 ;
3835+ }
3836+
3837+ /* Responsive: mobile */
3838+ @media (max-width : 640px ) {
3839+ .auth-brand {
3840+ display : none;
3841+ }
3842+
3843+ .auth-split-card {
3844+ width : 100% ;
3845+ }
3846+
3847+ .auth-form {
3848+ padding : 32px 24px ;
3849+ }
3850+
3851+ .auth-tabs {
3852+ gap : 20px ;
3853+ }
3854+ }
3855+
0 commit comments