Files
psychological-counseling/css/home.css
litianming 08ce60344d Initial commit: 心理咨询预约系统
PHP 前后端一体:首页咨询师列表、预约表单、管理后台、二维码准入与邮件通知;敏感配置与提交数据通过 .gitignore 排除。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 10:17:09 +08:00

312 lines
5.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.page--home {
background: var(--color-bg);
overflow-x: hidden;
}
/* ── Hero ── */
.hero {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
padding: calc(14px + env(safe-area-inset-top, 0px)) 20px 18px;
background: var(--gradient-hero);
}
.hero__decor {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
}
.hero__blob {
position: absolute;
border-radius: 50%;
filter: blur(40px);
opacity: 0.5;
}
.hero__blob--1 {
width: 160px;
height: 160px;
background: rgba(126, 203, 168, 0.3);
top: -30px;
right: -20px;
}
.hero__blob--2 {
width: 120px;
height: 120px;
background: rgba(76, 175, 138, 0.18);
bottom: 10px;
left: -30px;
}
.hero__badge {
position: relative;
z-index: 1;
display: inline-flex;
padding: 5px 14px;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.1em;
color: var(--color-primary-dark);
background: rgba(255, 255, 255, 0.85);
border: 1px solid rgba(255, 255, 255, 0.95);
border-radius: var(--radius-full);
box-shadow: 0 2px 10px rgba(45, 150, 104, 0.08);
}
.hero__content {
position: relative;
z-index: 1;
width: 100%;
text-align: center;
}
.hero__title {
font-size: 20px;
font-weight: 700;
color: var(--color-text);
line-height: 1.45;
margin-bottom: 6px;
}
.hero__title br {
display: none;
}
.hero__desc {
font-size: 13px;
color: var(--color-text-secondary);
line-height: 1.6;
margin: 0 auto;
max-width: 280px;
}
.hero__image-wrap {
position: relative;
z-index: 1;
margin-top: 2px;
padding: 10px;
background: rgba(255, 255, 255, 0.65);
border-radius: 20px;
box-shadow: 0 8px 28px rgba(76, 175, 138, 0.12);
}
.hero__illustration {
width: min(76vw, 236px);
height: auto;
border-radius: 14px;
display: block;
}
/* ── Doctor list ── */
.doctor-list {
padding: 18px 16px calc(var(--footer-cta-height) + var(--space-lg) + var(--safe-bottom));
}
.doctor-list__header {
margin-bottom: 14px;
padding: 0 2px;
}
.doctor-list__heading {
font-size: 17px;
font-weight: 700;
color: var(--color-text);
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 8px;
}
.doctor-list__heading::before {
content: "";
width: 4px;
height: 16px;
background: var(--gradient-primary);
border-radius: 2px;
flex-shrink: 0;
}
.doctor-list__sub {
font-size: 12px;
color: var(--color-text-muted);
padding-left: 12px;
}
.doctor-list__cards {
display: flex;
flex-direction: column;
gap: 12px;
}
/* ── Doctor card ── */
.doctor-card {
position: relative;
display: flex;
gap: 14px;
align-items: flex-start;
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: 14px 44px 14px 14px;
box-shadow: var(--shadow-card);
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
border: 1px solid var(--color-border);
animation: cardIn 0.4s ease backwards;
}
.doctor-card:nth-child(1) { animation-delay: 0.04s; }
.doctor-card:nth-child(2) { animation-delay: 0.1s; }
.doctor-card:nth-child(3) { animation-delay: 0.16s; }
@keyframes cardIn {
from {
opacity: 0;
transform: translateY(10px);
}
}
.doctor-card:active {
transform: scale(0.99);
box-shadow: var(--shadow-sm);
}
/* 头像容器overflow 可见,避免认证角标被裁切 */
.doctor-card__avatar-wrap {
position: relative;
flex-shrink: 0;
width: 86px;
height: 86px;
overflow: visible;
}
.doctor-card__avatar-ring {
width: 80px;
height: 80px;
border-radius: var(--radius-full);
overflow: hidden;
background: #eef5f1;
border: 2px solid #fff;
box-shadow: 0 4px 12px rgba(76, 175, 138, 0.15);
}
.doctor-card__avatar {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center top;
display: block;
}
/* 认证对号:参考设计橙色角标,叠在头像右下 */
.doctor-card__verified {
position: absolute;
right: 0;
bottom: 0;
z-index: 3;
width: 24px;
height: 24px;
background: linear-gradient(145deg, #ffb04a 0%, #ff9226 100%);
color: #fff;
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
border: 2.5px solid #fff;
box-shadow: 0 2px 8px rgba(255, 146, 38, 0.45);
pointer-events: none;
}
.doctor-card__body {
flex: 1;
min-width: 0;
padding-top: 2px;
}
.doctor-card__name-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 5px;
}
.doctor-card__name {
font-size: 16px;
font-weight: 700;
color: var(--color-text);
}
.doctor-card__tag {
font-size: 10px;
font-weight: 600;
padding: 2px 8px;
background: #fff4e8;
color: #e07b2a;
border-radius: var(--radius-full);
white-space: nowrap;
border: 1px solid rgba(224, 123, 42, 0.15);
}
.doctor-card__hospital {
font-size: 13px;
color: var(--color-hospital);
font-weight: 600;
margin-bottom: 8px;
line-height: 1.4;
}
.doctor-card__fields {
font-size: 12px;
color: var(--color-text-secondary);
line-height: 1.55;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.doctor-card__fields-label {
color: var(--color-text-muted);
font-weight: 500;
margin-right: 2px;
}
.doctor-card__fields-label::after {
content: "";
}
.doctor-card__arrow {
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
width: 26px;
height: 26px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: var(--color-primary-dark);
background: var(--color-primary-light);
border-radius: var(--radius-full);
}
.doctor-list__empty {
text-align: center;
padding: var(--space-xl);
color: var(--color-text-muted);
font-size: 14px;
}
@media (min-width: 360px) {
.hero__title br {
display: inline;
}
}