:root { color-scheme: light; --blue: #1677ff; --blue-deep: #1265d8; --text: #171923; --muted: #7a8292; --surface: #ffffff; --shadow: 0 18px 44px rgba(34, 88, 164, 0.14); } * { box-sizing: border-box; } html, body { min-height: 100%; } body { margin: 0; font-family: "PingFang SC", "Microsoft YaHei", sans-serif; background: #fff; color: var(--text); } .login-bg { position: relative; display: flex; min-height: 100vh; flex-direction: column; align-items: center; overflow: hidden; background: #fff; padding-bottom: 38px; } .bg-image { position: absolute; top: 0; left: 0; z-index: 0; width: 100%; height: 250px; object-fit: cover; } .doctor-card-wrap { position: relative; z-index: 1; width: calc(100vw - 48px); max-width: 300px; margin: 160px auto 0; } .doctor-card { position: relative; z-index: 1; display: flex; min-height: 210px; flex-direction: column; align-items: center; padding: 50px 12px 30px; background: linear-gradient(180deg, #dbe8ff 0%, #fff 50.25%); border-radius: 12px; box-shadow: 0 4px 16px rgba(59, 124, 255, 0.08); } .doctor-info { display: flex; flex-direction: column; align-items: center; text-align: center; } .doctor-avatar { position: absolute; top: 0; left: 50%; z-index: 2; transform: translate(-50%, -50%); border: 3px solid #fff; border-radius: 8px; background: #f2f2f2; box-shadow: 0 1px 4px rgba(59, 124, 255, 0.08); } .avatar-board { position: relative; width: 72px; height: 72px; overflow: hidden; border-radius: 8px; background: #f5f5f5; } .avatar { position: absolute; display: grid; place-items: center; overflow: hidden; color: #fff; font-weight: 700; letter-spacing: 0; background: linear-gradient(160deg, #b9d8ff, #1d79ed); } .avatar::before { content: ""; position: absolute; top: 14%; width: 34%; aspect-ratio: 1; border-radius: 50%; background: rgba(255, 255, 255, 0.78); } .avatar::after { content: ""; position: absolute; bottom: -15%; width: 68%; aspect-ratio: 1.1; border-radius: 48% 48% 0 0; background: rgba(255, 255, 255, 0.82); } .avatar span { position: relative; z-index: 1; margin-top: 28px; font-size: 16px; } .avatar img { position: absolute; inset: 0; z-index: 2; display: none; width: 100%; height: 100%; object-fit: cover; } .avatar.has-image img { display: block; } .avatar.has-image span, .avatar.has-image::before, .avatar.has-image::after { display: none; } .avatar-large { left: 0; top: 0; width: 36px; height: 36px; border-radius: 2px; } .avatar-small { right: 0; bottom: 0; width: 36px; height: 36px; border-radius: 2px; background: linear-gradient(160deg, #d5e8ff, #48a0ff); } .doctor-name { margin: 20px 0 0; color: #1d2129; font-size: 20px; line-height: 1.35; font-weight: 600; letter-spacing: 0; } .doctor-hospital { margin: 10px 0 0; color: #78808f; font-size: 14px; line-height: 1.45; font-weight: 400; letter-spacing: 0; } .doctor-dept { display: inline-block; margin: 9px 0 0; padding: 0 5px; border: 1px solid rgba(26, 62, 132, 0.2); border-radius: 2px; color: #213e80; font-size: 11px; line-height: 20px; font-weight: 400; } .doctor-dept:empty, .doctor-dept[hidden] { display: none; } .login-tip { display: block; margin: 20px 0 0; color: #000; font-size: 16px; line-height: 1.45; font-weight: 500; letter-spacing: 0; } .login-btn-wrap { position: relative; z-index: 1; display: flex; width: 100vw; justify-content: center; margin-top: 68px; } .login-btn { width: calc(100vw - 56px); max-width: 300px; height: 48px; line-height: 48px; border: 0; border-radius: 24px; color: #fff; background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%); box-shadow: 0 2px 8px rgba(59, 124, 255, 0.08); font-size: 16px; font-weight: 600; letter-spacing: 0.18em; text-indent: 0.18em; } .login-btn:disabled { background: #c7d3e4; box-shadow: none; } .status-text { position: relative; z-index: 1; min-height: 20px; margin: 16px 0 0; color: #8b96a8; text-align: center; font-size: 13px; line-height: 1.5; } @media (max-width: 360px) { .doctor-card-wrap { width: calc(100vw - 36px); margin-top: 150px; } .doctor-card { min-height: 198px; padding-right: 12px; padding-left: 12px; } .doctor-name { font-size: 19px; } .login-tip { font-size: 15px; } .login-btn-wrap { margin-top: 58px; } }