.web-auth-slot{display:flex;min-width:72px;min-height:40px;align-items:center;justify-content:flex-end}
.web-login-nav{visibility:hidden;font:inherit;white-space:nowrap}
.web-auth-ready .web-login-nav{visibility:visible}
.web-login-nav[hidden]{display:none!important}
.web-account{position:relative;display:none;height:40px;align-self:center}
.web-account.active{display:flex;align-items:center}
.web-account-trigger{display:flex;max-width:190px;height:40px;margin:0;box-sizing:border-box;align-items:center;gap:8px;padding:4px 8px;border:0;border-radius:9px;background:transparent;color:var(--text-primary);font:inherit;line-height:1;cursor:pointer}
.web-account-trigger:hover{background:var(--bg-secondary)}
.web-account-avatar{display:block;width:20px;height:20px;flex:0 0 20px;object-fit:contain}
.web-account-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:20px}
.web-account-chevron{display:block;width:14px;height:14px;object-fit:contain}
button[data-loading="true"]{position:relative!important;pointer-events:none!important;cursor:wait!important;color:transparent!important;opacity:.72}
button[data-loading="true"]>*{visibility:hidden!important}
button[data-loading="true"]:after{content:""!important;position:absolute!important;left:50%!important;top:50%!important;width:15px!important;height:15px!important;margin:-8px 0 0 -8px!important;border:2px solid currentColor!important;border-right-color:transparent!important;border-radius:50%!important;color:#777!important;background:none!important;animation:web-button-spin .65s linear infinite!important}
button.primary-button[data-loading="true"]:after,.web-login-submit[data-loading="true"]:after{color:#fff!important}
@keyframes web-button-spin{to{transform:rotate(360deg)}}
.web-account-menu{position:absolute;right:0;top:100%;z-index:120;display:none;width:236px;padding:12px;border:1px solid #ececf0;border-radius:12px;background:#fff;box-shadow:0 12px 36px rgba(0,0,0,.14)}
.web-account:hover .web-account-menu,.web-account:focus-within .web-account-menu{display:block}
.web-account-summary{padding:8px 12px;border-radius:12px;background:#f7f7f9}
.web-account-plan-row,.web-account-points-row{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:12px;font-size:14px}
.web-account-plan-row a{padding:6px 14px;border-radius:8px;background:#111;color:#fff;text-decoration:none;font-size:12px;font-weight:600}
.web-account-divider{height:1px;margin:4px 0;background:rgba(0,0,0,.1)}
.web-account-points-row strong{font-size:14px;font-weight:600}
.web-account-links{margin-top:10px}
.web-account-links a,.web-account-links button{display:flex;width:100%;height:42px;align-items:center;gap:9px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:#222;text-decoration:none;font:inherit;font-size:14px;cursor:pointer}
.web-account-links a:hover,.web-account-links button:hover{background:#f5f5f6}
.web-account-item-icon{display:block;width:20px;height:20px;object-fit:contain}
.web-account-contact{position:relative}
.web-account-contact:before{content:"";position:absolute;right:100%;top:0;width:16px;height:100%}
.web-contact-qr{position:absolute;right:calc(100% + 16px);top:50%;display:none;width:204px;transform:translateY(-50%);flex-direction:column;align-items:center;padding:12px;border:1px solid #ececf0;border-radius:12px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.web-contact-qr:before{content:"";position:absolute;right:-9px;top:50%;transform:translateY(-50%);border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:9px solid #ececf0}
.web-contact-qr:after{content:"";position:absolute;right:-7px;top:50%;transform:translateY(-50%);border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #fff}
.web-account-contact:hover .web-contact-qr,.web-account-contact:focus-within .web-contact-qr{display:flex}
.web-contact-qr img{display:block;width:180px;height:180px;object-fit:contain}
.web-contact-qr p{margin:8px 0 0;color:#757575;text-align:center;font-size:14px;line-height:20px}
.web-account-settings-modal{position:relative;width:420px;max-width:100%;padding:32px;border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.2)}
.web-account-settings-modal h2{margin-bottom:20px;font-size:22px}
.web-account-profile{display:flex;flex-direction:column;gap:0}
.web-account-profile>div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid #eee;font-size:14px}
.web-account-profile dt{color:#777}.web-account-profile dd{margin:0;overflow-wrap:anywhere;color:#222}
.web-login-overlay{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.48);backdrop-filter:blur(3px)}
.web-login-overlay.active{display:flex}
.web-login-modal{position:relative;width:420px;max-width:100%;padding:32px;border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.2)}
.web-login-close{position:absolute;right:16px;top:14px;display:flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer}
.web-login-close img{width:20px;height:20px}
.web-login-modal h2{font-size:24px;margin-bottom:6px}
.web-login-tabs{display:flex;gap:24px;margin-bottom:22px; justify-content:center;}
.web-login-tabs button{position:relative;padding:0 0 10px;border:0;background:transparent;color:#888;font:inherit;cursor:pointer}
.web-login-tabs button.active{color:#111;font-weight:600}
.web-login-tabs button.active:after{content:"";position:absolute;left:20%;right:20%;bottom:-1px;height:2px;background:#111}
.web-login-tabs button[hidden]{display:none}
.web-login-form{display:flex;flex-direction:column;gap:4px}
.web-login-form[hidden]{display:none}
.web-login-form label{color:#555;font-size:13px;font-weight:600}
.web-login-form input{width:100%;height:44px;padding:0 13px;border:1px solid #d9d9de;border-radius:8px;font:inherit;outline:none}
.web-login-form input:focus{border-color:#555;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.web-login-form input.input-error{border-color:#d93025;box-shadow:none}
.web-field-error{min-height:16px;color:#d93025;font-size:12px;line-height:16px}
.web-code-row{display:flex;gap:8px}
.web-code-row input{min-width:0;flex:1}
.web-code-row button{width:118px;border:1px solid #d9d9de;border-radius:8px;background:#fff;cursor:pointer}
.web-code-row button:disabled{cursor:not-allowed;opacity:.55}
.web-login-submit{height:44px;margin-top:4px;border:0;border-radius:8px;background:#111;color:#fff;font:inherit;font-weight:600;cursor:pointer}
.web-login-submit:disabled{opacity:.6;cursor:wait}
.web-login-message{min-height:20px;margin-top:12px;text-align:center;font-size:13px;color:#c62828}
.web-login-message.success{color:#16845b}
.web-login-agreement{margin-top:12px;color:#929292;text-align:center;font-size:12px}
.web-login-agreement a{color:inherit}
.web-google-login[hidden]{display:none}
.web-login-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#999;font-size:12px}
.web-login-divider:before,.web-login-divider:after{content:"";height:1px;flex:1;background:#eee}
.web-google-button{display:flex;width:100%;height:44px;align-items:center;justify-content:center;gap:10px;border:1px solid #d9d9de;border-radius:8px;background:#fff;color:#333;font:inherit;cursor:pointer}
.web-google-button:hover{background:#f7f7f8}
.web-google-button svg{width:19px;height:19px}
.web-captcha-modal{width:360px;max-width:100%;padding:20px;border-radius:14px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.2);user-select:none}
.web-captcha-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.web-captcha-header button{display:flex;width:24px;height:24px;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer}
.web-captcha-header button img{width:20px;height:20px}
.web-captcha-image{position:relative;width:320px;height:160px;max-width:100%;overflow:hidden;border-radius:8px;background:#f2f2f2}
.web-captcha-image img{position:absolute;left:0;top:0;display:block;pointer-events:none}
#webCaptchaPiece{z-index:2}
.web-captcha-track{position:relative;height:40px;margin-top:14px;overflow:hidden;border-radius:7px;background:#f1f1f3}
.web-captcha-track>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#888;font-size:12px;pointer-events:none}
.web-captcha-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#e2f5ec}
.web-captcha-slider{position:absolute;z-index:2;left:0;top:0;width:40px;height:40px;border:1px solid #ddd;border-radius:7px;background:#fff;font-size:18px;cursor:grab}
.web-captcha-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;margin-top:8px}
.web-captcha-refresh{border:0;background:transparent;color:#666;cursor:pointer}
.web-captcha-error{flex:1;color:#d93025;text-align:right;font-size:12px;line-height:18px}
@media(max-width:560px){.web-login-modal{padding:28px 20px}.web-login-nav{padding:8px 12px}.web-captcha-modal{width:calc(100vw - 24px)}.web-contact-qr{right:0;top:46px;z-index:2;transform:none}.web-contact-qr:before,.web-contact-qr:after{display:none}}
