Snapshot of uncommitted work: landing, bots, prod infra, partner cabinet, backoffice stage 1

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zabudko-ruandClaude Opus 5.5 committed 2026-10-21 01:23:32 +04:00
1 parent 45d7512d2b
commit d452824c62
314 files changed
+44394 -121

No files matched your search

+467
View File
@@ -0,0 +1,467 @@
/* /ru/apartments: квартиры из CRM — тёмная тема главной, карточки светлые, как клубная карта */
.fl-hero {
padding: 24px 8px 4px;
}
.fl-hero .s-lead {
max-width: 68ch;
}
.fl-filter {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
padding: 8px;
}
.fl-chip {
height: 40px;
padding: 0 18px;
border-radius: var(--bc-pill);
border: 2px solid color-mix(in srgb, var(--bc-pink) 45%, transparent);
background: transparent;
color: var(--bc-bg);
font: inherit;
font-weight: 600;
font-size: 15px;
cursor: pointer;
}
.fl-chip[aria-pressed='true'] {
background: var(--bc-pink);
border-color: var(--bc-pink);
color: var(--bc-plum);
}
.fl-count {
margin-left: auto;
font-size: 14px;
color: #e9c9d5;
}
.fl-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 20px;
margin: 0;
padding: 8px;
list-style: none;
}
@media (max-width: 860px) {
.fl-list {
grid-template-columns: minmax(0, 1fr);
}
}
.fl-card {
display: flex;
flex-direction: column;
overflow: hidden;
border-radius: var(--bc-r-lg);
background: var(--bc-bg);
color: var(--bc-ink);
}
.fl-card__body {
display: flex;
flex-direction: column;
gap: 12px;
padding: 20px 22px 22px;
flex: 1;
}
.fl-card__head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 16px;
}
.fl-card__title {
margin: 0;
font-family: var(--bc-font-head);
font-weight: 700;
font-size: 22px;
line-height: 1.15;
color: var(--bc-plum);
}
.fl-card__facts {
margin: 6px 0 0;
font-size: 15px;
color: #6b5d58;
}
.fl-card__price {
margin: 0;
flex-shrink: 0;
font-family: var(--bc-font-head);
font-weight: 800;
font-size: 20px;
line-height: 1.15;
text-align: right;
color: var(--bc-accent);
white-space: nowrap;
}
@media (max-width: 420px) {
.fl-card__head {
flex-direction: column;
gap: 6px;
}
.fl-card__price {
text-align: left;
}
}
.fl-text p {
margin: 0;
white-space: pre-line;
font-size: 15px;
line-height: 1.55;
overflow-wrap: anywhere;
}
.fl-text[data-open='false'] p {
display: -webkit-box;
-webkit-line-clamp: 7;
-webkit-box-orient: vertical;
overflow: hidden;
}
.fl-more {
align-self: flex-start;
padding: 0;
border: 0;
background: none;
color: var(--bc-accent);
font: inherit;
font-weight: 600;
font-size: 15px;
cursor: pointer;
text-decoration: underline;
text-underline-offset: 3px;
}
.fl-book {
width: 100%;
margin-top: auto;
background: var(--bc-plum);
color: #fff;
}
.fl-card .fl-book {
margin-top: 8px;
}
/* галерея */
.fl-gallery {
position: relative;
aspect-ratio: 4 / 3;
background: #2f0a19;
}
.fl-gallery--empty {
display: grid;
place-items: center;
color: #e9c9d5;
font-size: 15px;
}
.fl-gallery__track {
display: flex;
height: 100%;
overflow-x: auto;
scroll-snap-type: x mandatory;
overscroll-behavior-x: contain;
scrollbar-width: none;
}
.fl-gallery__track::-webkit-scrollbar {
display: none;
}
.fl-gallery__slide {
flex: 0 0 100%;
height: 100%;
padding: 0;
border: 0;
background: none;
scroll-snap-align: start;
cursor: zoom-in;
}
.fl-gallery__slide img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.fl-gallery__nav {
position: absolute;
top: 50%;
translate: 0 -50%;
width: 44px;
height: 44px;
border: 0;
border-radius: 50%;
background: rgba(251, 246, 238, 0.92);
color: var(--bc-plum);
font-size: 30px;
line-height: 1;
cursor: pointer;
box-shadow: var(--bc-shadow);
}
.fl-gallery__nav[disabled] {
opacity: 0;
pointer-events: none;
}
.fl-gallery__nav--prev {
left: 12px;
}
.fl-gallery__nav--next {
right: 12px;
}
.fl-gallery__count {
position: absolute;
right: 12px;
bottom: 12px;
padding: 4px 10px;
border-radius: var(--bc-pill);
background: rgba(30, 27, 26, 0.7);
color: #fff;
font-size: 13px;
font-variant-numeric: tabular-nums;
}
@media (hover: none) {
.fl-gallery:not(.fl-gallery--full) .fl-gallery__nav {
display: none;
}
}
/* фото на весь экран */
.fl-viewer {
width: 100vw;
max-width: none;
height: 100dvh;
max-height: none;
margin: 0;
padding: 0;
border: 0;
background: #120509;
color: #fff;
}
.fl-viewer[open] {
display: flex;
flex-direction: column;
}
.fl-viewer::backdrop {
background: #120509;
}
.fl-viewer__bar {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
padding: 12px 16px;
font-size: 15px;
}
.fl-gallery--full {
flex: 1;
aspect-ratio: auto;
min-height: 0;
background: none;
}
.fl-gallery--full .fl-gallery__slide {
cursor: default;
}
.fl-gallery--full .fl-gallery__slide img {
object-fit: contain;
}
.fl-viewer__book {
width: auto;
margin: 12px 16px 16px;
background: var(--bc-pink);
color: var(--bc-plum);
}
.fl-close {
flex-shrink: 0;
width: 44px;
height: 44px;
border: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.12);
color: inherit;
font-size: 28px;
line-height: 1;
cursor: pointer;
}
/* запись на просмотр */
.fl-modal {
width: min(560px, calc(100vw - 24px));
max-height: calc(100dvh - 24px);
padding: 0;
border: 0;
border-radius: var(--bc-r-lg);
background: var(--bc-bg);
color: var(--bc-ink);
}
.fl-modal::backdrop {
background: rgba(30, 10, 18, 0.7);
}
.fl-modal__box {
position: relative;
padding: 28px 24px 24px;
}
.fl-modal__close {
position: absolute;
top: 12px;
right: 12px;
background: rgba(74, 16, 40, 0.08);
color: var(--bc-plum);
}
.fl-modal h2 {
margin: 0 48px 0 0;
font-family: var(--bc-font-head);
font-weight: 800;
font-size: 26px;
color: var(--bc-plum);
}
.fl-modal__flat {
margin: 6px 0 18px;
color: #6b5d58;
font-size: 15px;
}
.fl-field {
margin: 0 0 16px;
padding: 0;
border: 0;
min-width: 0;
}
.fl-field legend,
.fl-input span {
display: block;
margin-bottom: 8px;
font-weight: 600;
font-size: 14px;
color: var(--bc-plum);
}
.fl-days {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 4px;
scrollbar-width: thin;
}
.fl-times {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.fl-day input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.fl-day span {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
min-width: 72px;
min-height: 60px;
padding: 8px 10px;
border-radius: var(--bc-r-sm);
border: 2px solid var(--bc-line);
background: var(--bc-surface);
cursor: pointer;
text-align: center;
}
.fl-day small {
font-size: 12px;
color: #6b5d58;
}
.fl-day b {
font-size: 15px;
white-space: nowrap;
}
.fl-day input:checked + span {
border-color: var(--bc-plum);
background: var(--bc-plum);
color: #fff;
}
.fl-day input:checked + span small {
color: #f4dce5;
}
.fl-day input:focus-visible + span {
outline: 3px solid var(--bc-accent);
outline-offset: 2px;
}
.fl-input {
display: block;
margin-bottom: 12px;
}
.fl-input input {
width: 100%;
height: 50px;
padding: 0 16px;
border-radius: 14px;
border: 2px solid var(--bc-line);
background: var(--bc-surface);
font: inherit;
font-size: 16px;
color: var(--bc-ink);
}
.fl-input input:focus {
outline: none;
border-color: var(--bc-plum);
}
.fl-contacts {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
@media (max-width: 480px) {
.fl-contacts {
grid-template-columns: 1fr;
gap: 0;
}
}
.fl-hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
}
.fl-error {
margin: 4px 0 12px;
padding: 10px 14px;
border-radius: 12px;
background: color-mix(in srgb, var(--bc-danger) 10%, transparent);
color: var(--bc-danger);
font-size: 14px;
}
.fl-error a {
color: inherit;
font-weight: 600;
}
.fl-note {
margin: 12px 0 0;
font-size: 12px;
line-height: 1.45;
color: #6b5d58;
}
.fl-note a {
color: inherit;
}
.fl-done p {
margin: 12px 0 20px;
font-size: 16px;
line-height: 1.5;
}
.fl-empty {
margin: 8px;
padding: 32px 24px;
border-radius: var(--bc-r-lg);
background: color-mix(in srgb, var(--bc-pink) 12%, transparent);
}
.fl-empty h2 {
margin: 0;
font-family: var(--bc-font-head);
font-size: 24px;
}
.fl-empty p {
margin: 10px 0 20px;
color: #f4dce5;
}
.fl-empty .fl-book {
width: auto;
background: var(--bc-pink);
color: var(--bc-plum);
}