@layer features {
/* Редактор гида (/handbook): всё из канона (system/components.css), здесь только то,
   чего в каноне нет: строка блока с кнопкой-областью, выбор иконки, подсказка Markdown. */
.handbook-row__open {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.handbook-row__icon {
  font-size: var(--type-xl);
  color: var(--color-action-primary-bg);
}
.handbook-row__preview {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: var(--leading-snug);
}

.handbook-body { min-height: calc(var(--space-12) * 4); }
.handbook-md-hint code {
  padding-inline: var(--space-1);
  border-radius: var(--radius-xs);
  background: var(--color-surface-overlay);
  color: var(--color-content-secondary);
  font-family: var(--config-font-mono);
  white-space: nowrap;
}

/* ===== Публичные страницы /house-rules и /my-stay ===== */
.guest-guide {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--space-10) var(--space-5) 60px;
  color: #2c2c2c;
  line-height: 1.6;
}
.guest-guide h1 {
  font-size: var(--type-3xl);
  margin: 0 0 var(--space-2);
  color: #1a1a1a;
}
.guest-guide__sub {
  color: #666;
  font-size: var(--type-sm);
  margin-bottom: var(--space-8);
}
/* /house-rules: «Условия бронирования» и «Полезная информация» — группы блоков. */
.guest-guide__group { margin-block-end: var(--space-10); }
.guest-guide__group-title {
  font-size: var(--type-2xl);
  font-weight: 700;
  margin-block: 0 var(--space-5);
  color: var(--color-content-primary);
}
.guest-guide__section {
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid #ececec;
}
.guest-guide__section:last-child { border-bottom: none; }
.guest-guide__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--type-lg);
  font-weight: 600;
  margin: 0 0 var(--space-3);
  color: #1a1a1a;
}
.guest-guide__title .material-icons {
  font-size: var(--type-2xl);
  color: var(--color-brand-500);
}
.guest-guide__body {
  font-size: var(--type-md);
  color: #3a3a3a;
}
.guest-guide__body a {
  color: var(--color-brand-500);
  overflow-wrap: anywhere;
}

/* ===== Markdown rendering ===== */
.md-body .md-p {
  margin: 0 0 var(--space-3);
  line-height: 1.6;
}
.md-body .md-p:last-child { margin-bottom: 0; }

.md-body .md-h {
  margin: var(--space-5) 0 var(--space-3);
  font-weight: 600;
  color: #1a1a1a;
  line-height: 1.3;
}
.md-body .md-h:first-child { margin-top: 0; }
.md-body .md-h2 { font-size: var(--type-lg); }
.md-body .md-h3 { font-size: var(--type-md); }
.md-body .md-h4 { font-size: var(--type-sm); letter-spacing: 0.04em; color: #666; }

.md-body .md-list {
  margin: var(--space-2) 0 var(--space-4);
  padding-inline-start: var(--space-6);
  line-height: 1.65;
}
.md-body .md-list li { margin-bottom: var(--space-1); }
.md-body .md-list li:last-child { margin-bottom: 0; }

.md-body .md-quote {
  margin: var(--space-3) 0;
  padding: var(--space-3) var(--space-4);
  border-inline-start: 3px solid var(--color-brand-500);
  background: rgba(201, 162, 39, 0.06);
  border-radius: 0 6px 6px 0;
  color: #4a4a4a;
  font-style: italic;
}

.md-body .md-hr {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: var(--space-5) 0;
}

.md-body .md-code {
  background: #f0efe8;
  padding: 2px var(--space-2);
  border-radius: var(--radius-xs);
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 90%;
}

.md-body strong { color: #1a1a1a; font-weight: 700; }
.md-body em { font-style: italic; }

.md-body .md-img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-sm);
  margin: var(--space-2) 0;
  display: block;
}

.md-body .md-embed {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  margin: var(--space-4) 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-black);
}
.md-body .md-embed iframe {
  position: absolute;
  top: 0; inset-inline-start: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.guest-guide__footer {
  margin-top: var(--space-10);
  padding-top: var(--space-5);
  border-top: 1px solid #ececec;
  color: #888;
  font-size: var(--type-xs);
  text-align: center;
}
.guest-guide__error {
  padding: var(--space-10) var(--space-5);
  text-align: center;
  color: #999;
  font-size: var(--type-sm);
}
@media (max-width: 600px) {
  .guest-guide { padding: var(--space-6) var(--space-4) var(--space-10); }
  .guest-guide h1 { font-size: var(--type-2xl); }
  .guest-guide__title { font-size: var(--type-md); }
}
}
