dana-medical-site/web/src/components/NativeBooking.css

272 lines
5.2 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.

.native-booking {
display: flex;
flex-direction: column;
gap: 16px;
}
.native-booking__loading {
padding: 24px 0;
color: var(--text-muted);
}
.native-booking__branches,
.native-booking__days {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 4px;
}
.slot-tab {
flex: none;
padding: 9px 14px;
border: 1px solid var(--chip-border);
border-radius: 12px;
background: var(--surface);
font-size: 14px;
color: var(--ink);
white-space: nowrap;
}
.slot-tab:hover {
background: var(--chip);
}
.slot-tab--on,
.slot-tab--on:hover {
border-color: var(--navy);
background: var(--navy);
color: #fff;
}
.native-booking__times {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
gap: 8px;
max-height: 260px;
overflow-y: auto;
}
.native-booking__hint {
font-size: 13px;
color: var(--text-muted-3);
}
.native-booking__chosen {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 14px 18px;
border-radius: 16px;
background: var(--soft);
}
.native-booking__chosen-when {
font-weight: 700;
color: var(--navy);
}
.native-booking__chosen-where {
margin-top: 2px;
font-size: 13px;
color: var(--text-muted);
}
.native-booking__change {
flex: none;
font-size: 14px;
color: var(--coral);
text-decoration: underline;
}
.slot-chip {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 1px;
padding: 9px 14px;
border: 1px solid var(--chip-border);
border-radius: 12px;
background: var(--surface);
font-weight: 600;
font-size: 15px;
color: var(--navy);
}
.slot-chip:hover {
border-color: var(--coral);
color: var(--coral);
}
.slot-chip__day {
font-weight: 400;
font-size: 11px;
color: var(--text-muted-3);
}
.slot-chip--time {
flex-direction: row;
justify-content: center;
}
.slot-chip--more {
justify-content: center;
font-weight: 500;
font-size: 14px;
background: transparent;
}
.next-slots {
margin-top: 18px;
}
.next-slots__title {
margin-bottom: 8px;
font-size: 14px;
color: var(--text-muted);
}
.next-slots__list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
@media (max-width: 767px) {
.native-booking__chosen {
padding: 12px 14px;
}
.next-slots {
margin-top: 12px;
}
}
/* Wait-Call Verification Step */
.waitcall-step {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 16px 8px;
gap: 16px;
}
.waitcall-step__icon {
position: relative;
width: 56px;
height: 56px;
border-radius: 50%;
background: var(--soft, #f0f4f8);
display: flex;
align-items: center;
justify-content: center;
font-size: 26px;
}
.waitcall-step__ring {
position: absolute;
inset: -6px;
border: 2px solid var(--coral, #f05336);
border-radius: 50%;
animation: waitcall-pulse 2s infinite ease-out;
opacity: 0.7;
}
@keyframes waitcall-pulse {
0% { transform: scale(0.9); opacity: 0.9; }
70% { transform: scale(1.3); opacity: 0; }
100% { transform: scale(1.3); opacity: 0; }
}
.waitcall-step__title {
font-size: 18px;
font-weight: 700;
color: var(--navy, #1e293b);
margin: 0;
}
.waitcall-step__desc {
font-size: 14px;
line-height: 1.45;
color: var(--text-muted, #64748b);
max-width: 380px;
margin: 0;
}
.waitcall-step__call-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
max-width: 360px;
padding: 14px 24px;
font-size: 16px;
font-weight: 700;
text-decoration: none;
border-radius: 14px;
box-shadow: 0 4px 14px rgba(240, 83, 54, 0.25);
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.waitcall-step__call-btn:hover {
transform: translateY(-1px);
box-shadow: 0 6px 20px rgba(240, 83, 54, 0.35);
}
.waitcall-step__info {
background: var(--soft, #f8fafc);
border-radius: 14px;
padding: 14px 18px;
max-width: 380px;
width: 100%;
display: flex;
flex-direction: column;
gap: 10px;
}
.waitcall-step__free {
font-size: 13px;
line-height: 1.4;
color: var(--text-muted, #64748b);
margin: 0;
}
.waitcall-step__status {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
font-size: 13px;
font-weight: 600;
color: var(--navy, #1e293b);
}
.waitcall-step__spinner {
width: 14px;
height: 14px;
border: 2px solid var(--chip-border, #cbd5e1);
border-top-color: var(--coral, #f05336);
border-radius: 50%;
animation: waitcall-spin 0.8s linear infinite;
}
@keyframes waitcall-spin {
to { transform: rotate(360deg); }
}
.waitcall-step__back {
background: transparent;
border: none;
color: var(--text-muted, #64748b);
font-size: 14px;
cursor: pointer;
padding: 6px 12px;
transition: color 0.15s ease;
}
.waitcall-step__back:hover {
color: var(--coral, #f05336);
}
/* Развёрнутый вид окна записи: все дни видны сразу (переносятся на следующую строку, а не уезжают
вправо), и всё свободное время дня — без прокрутки внутри списка. */
.native-booking__branches,
.native-booking__days {
flex-wrap: wrap;
overflow-x: visible;
}
.native-booking__times {
max-height: none;
overflow-y: visible;
}