@charset "UTF-8";
/* Страница «Отзывы клиентов» (/feedback), 30.09.2026 — по макету screenshot/LK/magistr-feedback-redesign.html.
   Все правила внутри .fb-page / .fb-modal; !important на p/h* — из-за старого style-inner.css. */

.fb-page, .fb-modal {
    --fb-navy: #0f2d69;
    --fb-blue: #1478ee;
    --fb-text: #17345d;
    --fb-muted: #7083a0;
    --fb-line: #dfe9f4;
    --fb-shadow: 0 10px 28px rgba(27, 76, 132, .07);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--fb-text);
    line-height: 1.45;
}
.fb-page *, .fb-modal *, .fb-page *:before, .fb-modal *:before, .fb-page *:after, .fb-modal *:after { box-sizing: border-box; }
.fb-page h1, .fb-page h2, .fb-page h3, .fb-modal h2 { font-family: inherit !important; font-style: normal !important; padding: 0 !important; }
.fb-page p, .fb-modal p { font-family: inherit !important; padding: 0 !important; }
.fb-page a, .fb-modal a { text-decoration: none !important; }
.fb-page svg, .fb-modal svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.fb-page { max-width: 1040px; margin: 0 auto; padding: 4px 0 30px; }

.fb-stars { color: #ff9e16; letter-spacing: 2px; font-size: 22px; line-height: 1; white-space: nowrap; }
.fb-stars-off { color: #d9e2ee; }

/* Кнопки */
.fb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 0 20px; border-radius: 11px; border: 0; cursor: pointer; font: inherit; font-size: 15px; font-weight: 800; white-space: nowrap; }
.fb-btn svg { width: 18px; height: 18px; flex: none; }
.fb-btn--orange { color: #fff !important; background: linear-gradient(180deg, #ff9f2d, #ff7d0e); box-shadow: 0 8px 18px rgba(255, 130, 19, .22); }
.fb-btn--orange:hover { background: linear-gradient(180deg, #ff9420, #f27000); }
.fb-btn--outline { color: #0c74df !important; background: #fff; border: 1.5px solid #0c74df; }
.fb-btn--outline:hover { background: #f2f8ff; }
.fb-btn--wide { width: 100%; min-height: 52px; font-size: 16px; }
.fb-btn:disabled { opacity: .7; cursor: progress; }

/* Сообщение после отправки формы */
.fb-flash { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; padding: 14px 18px; border-radius: 14px; background: #e8f6ee; color: #1f7a4d; font-size: 15px; font-weight: 600; }
.fb-flash svg { width: 22px; height: 22px; flex: none; }

/* Hero */
.fb-hero { display: grid; grid-template-columns: 1fr 340px; align-items: center; gap: 40px; padding: 28px 30px; border: 1px solid #e3eef9; border-radius: 22px; background: radial-gradient(circle at 84% 8%, rgba(187, 221, 255, .65), transparent 30%), linear-gradient(110deg, #f8fcff 0%, #eef7ff 62%, #f6fbff 100%); }
.fb-page .fb-hero h1 { margin: 0 !important; font-size: 44px !important; font-weight: 800 !important; line-height: 1 !important; letter-spacing: -1.6px; color: #0b2c68 !important; }
.fb-page .fb-hero p { margin: 13px 0 20px !important; max-width: 560px; font-size: 17px !important; line-height: 1.45 !important; color: #637b9b !important; }
.fb-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.fb-rating { display: block; padding: 22px 24px; background: #fff; border: 1px solid var(--fb-line); border-radius: 20px; box-shadow: var(--fb-shadow); color: inherit !important; transition: box-shadow .15s, border-color .15s; }
.fb-rating:hover { border-color: #c9dcf2; box-shadow: 0 12px 30px rgba(27, 76, 132, .12); }
.fb-rating-main { display: flex; align-items: center; gap: 16px; }
.fb-rating-main strong { font-size: 48px; line-height: 1; font-weight: 800; color: #0e2e6b; }
.fb-rating-main .fb-stars { font-size: 25px; }
.fb-rating-main small { display: block; margin-top: 7px; font-size: 13px; color: #6f83a0; }
.fb-rating-main small b { color: var(--fb-text); }
.fb-rating-src { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #edf2f8; font-size: 13px; color: #6f83a0; }
.fb-ya { display: inline-flex; align-items: center; gap: 5px; font-weight: 800; font-size: 14px; color: #1a1a1a; letter-spacing: -.2px; }
.fb-ya svg { width: 20px; height: 20px; stroke: none; }

/* Фильтры */
.fb-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 0 14px; }
.fb-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.fb-filter { border: 0; border-radius: 20px; padding: 9px 15px; background: #f0f4f8; color: #586f8f; cursor: pointer; font: inherit; font-weight: 700; font-size: 13px; white-space: nowrap; }
.fb-filter:hover { background: #e5edf6; }
.fb-filter.is-active { background: #1677e8; color: #fff; }
.fb-filter--crit.is-active { background: #e2574c; }
.fb-sort { flex: none; border: 1px solid var(--fb-line); border-radius: 10px; background: #fff; padding: 9px 12px; color: #405a7a; font: inherit; font-size: 14px; }

/* Карточки */
.fb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.fb-review { padding: 16px 18px; border: 1px solid var(--fb-line); border-radius: 16px; background: #fff; box-shadow: var(--fb-shadow); }
.fb-review.is-crit { border-color: #f3d9d6; }
.fb-review-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.fb-review .fb-stars { font-size: 18px; letter-spacing: 1px; }
.fb-review-date { font-size: 12px; color: #8091aa; white-space: nowrap; }
.fb-review-name { margin: 7px 0 6px; font-weight: 800; font-size: 16px; color: #173a70; }
.fb-review-tag { display: inline-block; padding: 5px 10px; border-radius: 13px; background: #edf7ff; color: #1475df; font-size: 11px; font-weight: 700; }
.fb-page .fb-review p { margin: 10px 0 0 !important; font-size: 14px !important; line-height: 1.5 !important; color: #526d8f !important; overflow-wrap: anywhere; }
.fb-review-more { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--fb-blue) !important; }
.fb-page p.fb-empty { grid-column: 1 / -1; margin: 20px 0 !important; text-align: center; color: var(--fb-muted) !important; }

/* Страницы */
.fb-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin: 20px 0 6px; }
.fb-pagination:empty { display: none; }
.fb-page-btn { min-width: 36px; height: 36px; padding: 0 8px; border-radius: 9px; border: 1px solid var(--fb-line); background: #fff; color: #365878; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.fb-page-btn:hover:not(:disabled) { border-color: #b9cff0; }
.fb-page-btn.is-active { background: var(--fb-blue); color: #fff; border-color: var(--fb-blue); }
.fb-page-btn:disabled { opacity: .45; cursor: default; }
.fb-page-btn.fb-page-gap { border: 0; background: transparent; opacity: 1; }

/* Что говорят студенты */
.fb-highlight { display: grid; grid-template-columns: 1fr 280px; gap: 14px; margin-top: 22px; padding: 20px; border: 1px solid #dbeaf7; border-radius: 19px; background: linear-gradient(100deg, #eef8ff 0%, #fff 70%); box-shadow: var(--fb-shadow); }
.fb-page .fb-highlight h2 { margin: 0 0 4px !important; font-size: 26px !important; font-weight: 800 !important; letter-spacing: -.4px; color: #12366f !important; }
.fb-highlight-sub { margin-bottom: 14px; font-size: 14px; color: #7287a3; }
.fb-quote { display: grid; grid-template-columns: 56px 1fr; gap: 14px; margin: 0; padding: 16px; background: #fff; border: 1px solid #e3edf7; border-radius: 15px; }
.fb-avatar { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: #e8f3ff; color: #1676df; font-weight: 800; }
.fb-quote .fb-stars { font-size: 17px; }
.fb-quote blockquote { margin: 8px 0; padding: 0; border: 0; font-size: 14px; line-height: 1.5; color: #4e6888; font-style: normal; }
.fb-quote strong { font-size: 14px; color: #173a70; }
.fb-quote small { display: block; margin-top: 3px; font-size: 12px; color: #8393a9; }
.fb-metrics { display: grid; gap: 10px; align-content: center; }
.fb-metric { display: flex; align-items: center; gap: 12px; padding: 13px 14px; background: #fff; border: 1px solid #e2ebf5; border-radius: 14px; }
.fb-metric-icon { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #eef6ff; color: #1477e6; }
.fb-metric-icon svg { width: 20px; height: 20px; }
.fb-metric b { font-size: 22px; color: #0e2e6b; }
.fb-metric span { display: block; margin-top: 2px; font-size: 12px; color: #7c8ea6; }

/* Поддержка */
.fb-support { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; padding: 14px 18px; background: #eef7ff; border: 1px solid #dceaf7; border-radius: 16px; }
.fb-support-copy { display: flex; align-items: center; gap: 14px; }
.fb-support-icon { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #1478ee; }
.fb-support-icon svg { width: 22px; height: 22px; }
.fb-page .fb-support h3 { margin: 0 0 3px !important; font-size: 16px !important; font-weight: 800 !important; color: #17366e !important; }
.fb-page .fb-support p { margin: 0 !important; font-size: 13px !important; color: #7185a0 !important; }

/* ===== Окно «Оставить отзыв» ===== */
html.fb-modal-open, html.fb-modal-open body { overflow: hidden; }
.fb-modal { position: fixed; inset: 0; z-index: 2147483002; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; overflow-y: auto; background: rgba(10, 20, 35, .55); }
.fb-modal[hidden] { display: none; }
.fb-modal-box { position: relative; width: min(560px, 100%); margin: auto 0; padding: 28px 28px 24px; background: #fff; border-radius: 20px; box-shadow: 0 20px 60px rgba(10, 20, 40, .25); }
.fb-modal-close { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #f4f8fd; color: #172135; cursor: pointer; }
.fb-modal-close svg { width: 18px; height: 18px; stroke-width: 2.2; }
.fb-modal h2 { margin: 0 40px 16px 0 !important; font-size: 23px !important; font-weight: 800 !important; line-height: 1.2 !important; color: #0e2e6b !important; }
.fb-tabs { display: flex; gap: 6px; margin-bottom: 18px; padding: 4px; border-radius: 12px; background: #f0f4f8; }
.fb-tabs[hidden] { display: none; }
.fb-tab { flex: 1; min-height: 38px; padding: 6px 10px; border: 0; border-radius: 9px; background: transparent; color: #586f8f; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.fb-tab.is-active { background: #fff; color: #0e2e6b; box-shadow: 0 2px 6px rgba(20, 50, 90, .1); }
.fb-form[hidden] { display: none; }
.fb-modal p.fb-form-lead, .fb-modal p.fb-login-note { margin: 0 0 16px !important; font-size: 14px !important; line-height: 1.45 !important; color: #5f7391 !important; }
.fb-login-note a { color: var(--fb-blue) !important; font-weight: 700; }
.fb-modal p.fb-form-err { margin: 0 0 14px !important; padding: 10px 14px !important; border-radius: 10px; background: #fdecea; color: #c0392b !important; font-size: 13px !important; }
.fb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.fb-field { margin-bottom: 14px; }
.fb-field[hidden] { display: none; }
.fb-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; color: #172135; }
.fb-opt { font-weight: 500; color: var(--fb-muted); }
.fb-field input, .fb-field select, .fb-field textarea { width: 100%; min-height: 46px; padding: 11px 14px; border: 1px solid #dbe6f3; border-radius: 12px; background: #fff; color: #172135; font: inherit; font-size: 16px; line-height: 1.4; outline: 0; }
.fb-field textarea { min-height: 120px; resize: vertical; }
.fb-field input::placeholder, .fb-field textarea::placeholder { color: #9aa8bc; }
.fb-field input:focus, .fb-field select:focus, .fb-field textarea:focus { border-color: #3977df; box-shadow: 0 0 0 3px rgba(57, 120, 223, .12); }
.fb-field-err { display: block; margin-top: 5px; font-size: 12px; color: #c0392b; }
.fb-field-err:empty { display: none; }
.fb-field.is-invalid input, .fb-field.is-invalid select, .fb-field.is-invalid textarea { border-color: #e2574c; }
.fb-field--captcha { display: flex; flex-direction: column; align-items: center; min-height: 78px; }
.fb-rate { display: inline-flex; gap: 4px; vertical-align: middle; }
.fb-rate-star { padding: 0 2px; border: 0; background: transparent; color: #d9e2ee; font-size: 32px; line-height: 1; cursor: pointer; transition: transform .1s; }
.fb-rate-star.is-on { color: #ff9e16; }
.fb-rate-star:hover { transform: scale(1.08); }
.fb-rate-hint { margin-left: 10px; font-size: 14px; font-weight: 700; color: #5f7391; vertical-align: middle; }
.fb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fb-done { padding: 20px 18px; border-radius: 14px; background: #e8f6ee; color: #1f7a4d; }
.fb-done strong { display: block; margin-bottom: 6px; font-size: 18px; }
.fb-modal .fb-done p { margin: 0 !important; font-size: 14px !important; color: #2c6e4c !important; }

/* ===== Адаптив ===== */
@media (max-width: 900px) {
    .fb-hero { grid-template-columns: 1fr; gap: 20px; }
    .fb-rating { max-width: 420px; }
    .fb-grid { grid-template-columns: 1fr; }
    .fb-highlight { grid-template-columns: 1fr; }
    .fb-metrics { grid-template-columns: repeat(3, 1fr); }
    .fb-controls { flex-direction: column; align-items: stretch; }
    .fb-sort { align-self: flex-start; }
}
@media (max-width: 640px) {
    .fb-page { padding: 0 0 24px; }
    .fb-hero { padding: 22px 16px; border-radius: 18px; }
    .fb-page .fb-hero h1 { font-size: 34px !important; }
    .fb-page .fb-hero p { font-size: 15px !important; }
    .fb-hero-actions .fb-btn { flex: 1 1 100%; }
    .fb-rating { padding: 18px; }
    .fb-rating-main strong { font-size: 42px; }
    .fb-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; margin: 0 -2px; }
    .fb-filters::-webkit-scrollbar { display: none; }
    .fb-metrics { grid-template-columns: 1fr; }
    .fb-quote { grid-template-columns: 1fr; }
    .fb-avatar { display: none; }
    .fb-support { flex-direction: column; align-items: stretch; }
    .fb-support .fb-btn { width: 100%; }
    .fb-modal { padding: 12px 10px; }
    .fb-modal-box { padding: 24px 16px 18px; }
    .fb-row { grid-template-columns: 1fr; }
    .fb-tab { font-size: 12px; }
}
@media (max-width: 360px) {
    #fbCaptcha { transform: scale(.9); transform-origin: center top; margin-bottom: -8px; }
}

/* v=2: длинные отзывы свёрнуты до 7 строк; подпись источника рейтинга */
.fb-review--long p { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.fb-review--long.is-expanded p { display: block; overflow: visible; }
.fb-review-toggle { margin-top: 8px; padding: 0; border: 0; background: none; color: var(--fb-blue); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.fb-review-toggle:hover { text-decoration: underline; }
.fb-rating-go { margin-left: auto; font-weight: 700; color: var(--fb-blue); }

/* v=3: вкладки «Отзыв» / «Запрос в поддержку» */
.fb-modal [data-pane][hidden] { display: none; }
.fb-state { padding: 4px 0 6px; }
.fb-state[hidden] { display: none; }
.fb-modal .fb-state p { margin: 0 0 14px !important; font-size: 15px !important; line-height: 1.5 !important; color: #3d5478 !important; }
.fb-support-fast { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 14px; margin-bottom: 16px; padding: 12px 14px; border-radius: 12px; background: #eef7ff; font-size: 14px; color: #3d5478; }
.fb-btn--sm { min-height: 38px; padding: 0 14px; font-size: 14px; }
.fb-modal p.fb-form-note { margin: 10px 0 0 !important; text-align: center; font-size: 13px !important; color: var(--fb-muted) !important; }
@media (max-width: 640px) { .fb-support-fast .fb-btn { width: 100%; } }
