/* Изолированная страница конструктора: формы читаемы на телефоне и не меняют
   стили существующей анкеты, анализатора или карточек расчётов. */
.tc-page { max-width: 900px; margin: 0 auto; padding: 24px 16px 72px; color: #18302b; }
.tc-page [hidden] { display: none !important; }
.tc-page h1 { font-size: clamp(27px, 4vw, 39px); line-height: 1.2; margin: 12px 0 18px; }
.tc-eyebrow { letter-spacing: .12em; font-size: 12px; color: #466b60; margin-top: 30px; }
.tc-lead { font-size: 18px; line-height: 1.6; max-width: 720px; }
.tc-profile, .tc-card, .tc-review, .tc-result { background: #fff; border: 1px solid #d9e6df; border-radius: 16px; padding: 24px; margin: 24px 0; }
.tc-profile { background: #eef6f1; }
.tc-card h2, .tc-result h2, .tc-review h2 { font-size: 23px; margin: 0 0 24px; }
.tc-page h3 { font-size: 17px; line-height: 1.5; margin: 0 0 12px; }
.tc-page h4 { margin: 0 0 16px; }
.tc-question { margin: 26px 0; }
.tc-page fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.tc-option { display: flex; align-items: flex-start; gap: 12px; border: 1px solid #d7e2dd; border-radius: 10px; padding: 13px; margin: 9px 0; cursor: pointer; line-height: 1.5; }
.tc-option:has(input:checked) { background: #eef7f1; border-color: #43846d; }
.tc-option input { margin: 5px 0 0; flex-shrink: 0; width: 17px; height: 17px; accent-color: #237a62; }
.tc-page input.input-text { box-sizing: border-box; display: block; width: 100%; max-width: 580px; padding: 12px; margin: 8px 0 14px; border: 1px solid #bccfc5; border-radius: 8px; font: inherit; color: #18302b; background: white; }
.tc-page input[type=number] { max-width: 180px; }
.tc-page select { max-width: 100%; padding: 10px; border: 1px solid #bccfc5; border-radius: 8px; font: inherit; color: #18302b; background: #fff; }
.tc-page label { font-size: 15px; }
.tc-hint { font-size: 14px; line-height: 1.55; color: #52685e; margin: 10px 0; }
.tc-place-card { padding: 18px; margin: 18px 0; background: #f8faf8; border: 1px solid #dbe5df; border-radius: 12px; }
.tc-place-card > label { display: block; margin: 18px 0; }
.tc-place-card select { display: block; margin-top: 8px; }
.tc-place-results { display: grid; gap: 6px; }
.tc-place-option { background: #fff; border: 1px solid #c6d7ce; border-radius: 8px; color: #18302b; padding: 12px; font: inherit; text-align: left; cursor: pointer; }
.tc-place-option:hover { background: #eaf5ee; }
.tc-page details { margin: 16px 0; }
.tc-page summary { cursor: pointer; font-size: 14px; line-height: 1.6; color: #256d55; }
.tc-inherited { border-left: 3px solid #82af98; padding: 10px 14px; background: #f5faf6; }
.tc-condition { display: flex; justify-content: space-between; align-items: center; gap: 14px; border-bottom: 1px solid #e3eae5; padding: 12px 0; }
.tc-error { color: #9e2424; line-height: 1.5; }
.tc-error:empty, .tc-result:empty, .tc-review:empty { display: none; }
.tc-warning { background: #fff5dc; padding: 12px; border-radius: 8px; line-height: 1.5; color: #714e10; }
.tc-review dl { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 1fr); gap: 12px 20px; }
.tc-review dt { color: #52685e; }
.tc-review dd { margin: 0; overflow-wrap: anywhere; }
.tc-result-size { font-size: 23px; font-weight: 600; }
.tc-result-map { height: 430px; border-radius: 12px; margin-top: 20px; z-index: 0; }
.tc-picker-map { height: 290px; margin: 12px 0; border-radius: 8px; background: #eaf0eb; z-index: 0; }
.tc-page button:focus-visible, .tc-page input:focus-visible, .tc-page select:focus-visible, .tc-page summary:focus-visible { outline: 3px solid #328bcb; outline-offset: 3px; }
@media(max-width: 600px) { .tc-profile, .tc-card, .tc-review, .tc-result { padding: 18px 14px; } .tc-condition { align-items: flex-start; flex-direction: column; } .tc-review dl { grid-template-columns: 1fr; gap: 6px; } .tc-review dd { margin-bottom: 12px; } .tc-result-map { height: 330px; } }

/* Карта использует тот же расчёт и овальные зоны, что и согласованный просмотр. */
.tc-alternatives-map{width:100%;height:1250px;border:0;display:block;background:#faf8fd;border-radius:22px;margin:20px 0}
.tc-day-settings{margin:24px 0;padding:20px;background:#f7f2fc;border:1px solid #e5d6f5;border-radius:18px}
.tc-day-settings summary{cursor:pointer;font-weight:600;color:#69408f}
.tc-day-settings label{display:grid;gap:8px;margin:18px 0;max-width:560px}
.tc-day-settings input,.tc-day-settings select,.tc-condition input{padding:9px 12px;border:1px solid #cdb8df;border-radius:10px;font:inherit;max-width:100%;box-sizing:border-box}
.tc-condition label{display:grid;gap:5px;font-size:13px}.tc-condition input{width:95px}
.tc-calculating{padding:18px 22px;background:#f2e8fc;color:#713d9e;border-radius:16px}
.tc-selection-status{font-weight:600;color:#713d9e}

/* Ошибка связана с конкретным вопросом; переход раскрывает нужную форму. */
.tc-invalid{border-left:3px solid #b43545;padding-left:14px;scroll-margin-top:100px}
.tc-field-error{color:#a12739;font-size:14px;line-height:1.5;margin:10px 0}
.tc-page [aria-invalid=true]:is(input,select){border-color:#b43545;background:#fff8f9}
.tc-error-link{padding:5px 0;border:0;background:none;color:#9e2424;text-decoration:underline;text-align:left;cursor:pointer;font:inherit}
.tc-error ul{padding-left:20px}.tc-error li{margin:5px 0}

/* Новый выбор точки на OpenLayers: подписи и кнопки остаются читаемыми. */
.tc-picker-map .ol-viewport{border-radius:12px}.tc-picker-map .ol-control button{color:#633b8a;background:#fff;border:1px solid #d9cbea}
.tc-picker-map .ol-attribution{font-size:10px;line-height:1.4;background:rgba(255,255,255,.9)}

/* Кнопки вариантов принадлежат странице, а не вложенной карте. */
.tc-scenario-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 10px}
.tc-scenario-tab{font:inherit;font-size:14px;min-height:44px;padding:10px 16px;border:1px solid #ddcbed;border-radius:12px;background:#fff;color:#68428a;cursor:pointer}
.tc-scenario-tab[aria-pressed=true]{background:#eee1fa;border-color:#a669d0;color:#502578}
.tc-current-scenario{color:#68428a;font-weight:600}.tc-scenario-tab:focus-visible{outline:3px solid #9c67ce;outline-offset:3px}
.tc-day-areas { margin-top: 1rem; }
.tc-day-areas details { margin: .65rem 0; padding: .8rem; border: 1px solid #e4d6ef; border-radius: 12px; background: #fcfaff; }
.tc-day-areas summary { cursor: pointer; font-weight: 600; }
.tc-day-areas li { margin: .45rem 0; overflow-wrap: anywhere; }

/* Дополнительные ответы доступны без перегрузки основного пути. */
.tc-optional{margin:16px 0}.tc-optional>summary{cursor:pointer;font-weight:600;color:#68428a;padding:10px 0}.tc-optional[open]>summary{margin-bottom:12px}.tc-page [hidden]{display:none!important}
