/* Туристическая страховка онлайн (калькулятор, оформление полиса, ожидание) и личный кабинет клиента.
   Классы полей и карточек — общие с calculators.css (calc-field, calc-input, calc-chip, calc-offer). */

/* --- Страны: выпадающий список с поиском --- */
.tc-countries{position:relative}
.tc-countries-summary{display:flex;align-items:center;cursor:pointer;list-style:none;user-select:none}
.tc-countries-summary::-webkit-details-marker{display:none}
.tc-countries-summary::after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px)}
.tc-countries[open] .tc-countries-summary{border-color:var(--accent)}
.tc-countries-panel{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow,0 12px 32px rgba(0,0,0,.12))}
.tc-countries-search{min-height:44px;margin-bottom:8px}
.tc-countries-list{max-height:300px;overflow:auto;display:grid;gap:2px}
.tc-country{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;font-size:15px}
.tc-country:hover{background:var(--bg)}
.tc-country input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 18px}
.tc-country[hidden]{display:none}
.tc-countries-sep{border:0;border-top:1px solid var(--line);margin:6px 4px}
.tc-country-chips{display:flex;flex-wrap:wrap;gap:6px}
.tc-country-chips:empty{display:none}
.tc-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font:500 13px/1.3 Manrope,sans-serif;cursor:pointer}
.tc-chip:hover{border-color:var(--accent);color:var(--accent)}

/* --- Туристы --- */
.tc-tourists{display:grid;gap:10px}
.tc-tourist{display:flex;align-items:center;gap:10px}
.tc-tourist .calc-input{flex:1}
.tc-tourist-num{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--muted)}
.tc-tourist-remove{width:44px;height:52px;flex:0 0 44px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--muted);font-size:22px;cursor:pointer}
.tc-tourist-remove:hover{border-color:var(--accent);color:var(--accent)}
.tc-tourist-add{align-self:flex-start;margin-top:4px}

/* --- Опции и согласия --- */
.tc-options{display:grid;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.tc-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer}
.tc-option+.tc-option{border-top:1px solid var(--line)}
.tc-option strong{display:block;font-size:15px;font-weight:600}
.tc-option small{display:block;font-size:13px;color:var(--muted);line-height:1.5;margin-top:3px}
.tc-option input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--accent)}
.tc-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.55;color:var(--ink);cursor:pointer}
.tc-check input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--accent)}
.tc-check a{color:var(--accent);text-decoration:underline}
.tc-check.has-error span{color:var(--accent)}

/* --- Предложения страховых --- */
.tc-offer{grid-template-columns:minmax(0,1.4fr) auto minmax(0,1.1fr)}
.tc-offer-note{grid-column:1/-1;margin:-6px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
.tc-offer.is-failed{opacity:.75}
.tc-offer.is-broker{background:var(--bg)}
.tc-offer.is-broker:first-child,.tc-offer.is-failed:first-child{border-color:var(--line)}

/* --- Оформление полиса --- */
.ap-section{font-size:19px;letter-spacing:-.02em;margin:30px 0 14px}
.ap-section:first-of-type{margin-top:0}
.ap-explain,.ap-note{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 14px}
.ap-fields{margin-bottom:6px}
.ap-tourist{padding:18px;border:1px solid var(--line);border-radius:16px;margin-bottom:12px}
.ap-tourist-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:14px}
.ap-tourist-head span{color:var(--muted)}
.ap-pays .calc-chip span{flex-direction:column;align-items:flex-start;gap:2px;min-height:56px}
.ap-pays .calc-chip small{font-size:12px;opacity:.8}
.ap-checks{display:grid;gap:12px;margin:26px 0 22px}
[data-ap-policyholder][hidden]{display:none}

/* --- Ожидание оформления --- */
.ap-progress{max-width:760px;margin:0 auto 60px;padding:34px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}
.ap-steps{list-style:none;padding:0;margin:0 0 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;counter-reset:step}
.ap-step{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:13px;color:var(--muted);counter-increment:step}
.ap-step-dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--muted);background:var(--bg)}
.ap-step-dot::before{content:counter(step)}
.ap-step.is-current{color:var(--ink);font-weight:600}
.ap-step.is-current .ap-step-dot{border-color:var(--accent);color:var(--accent)}
.ap-step.is-done .ap-step-dot{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.ap-step.is-done .ap-step-dot::before{content:"✓"}
.ap-step.is-failed .ap-step-dot{border-color:var(--accent);background:var(--accent);color:#fff}
.ap-step.is-failed .ap-step-dot::before{content:"!"}
.ap-status{text-align:center}
.ap-status h2{font-size:26px;letter-spacing:-.03em;margin:14px 0 10px}
.ap-status p{font-size:15px;line-height:1.75;color:var(--muted);margin:0 auto;max-width:560px}
.ap-spinner{display:inline-block;width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:ap-spin 1s linear infinite}
.ap-spinner[hidden]{display:none}
@keyframes ap-spin{to{transform:rotate(360deg)}}
.ap-consent{margin-top:14px!important;padding:12px 16px;border-radius:12px;background:var(--bg);color:var(--ink)!important}
.ap-pay-box,.ap-done,.ap-failed{margin-top:26px;text-align:center}
.ap-pay-box[hidden],.ap-done[hidden],.ap-failed[hidden],.ap-order[hidden],.ap-consent[hidden]{display:none}
.ap-sum{display:flex;justify-content:center;align-items:baseline;gap:12px;margin-bottom:16px}
.ap-sum strong{font-size:30px;letter-spacing:-.03em}
.ap-done p{font-size:15px;line-height:1.75}
.ap-done .detail-form-actions,.ap-failed{justify-content:center;flex-wrap:wrap;display:flex;gap:14px}
.ap-order{text-align:center;font-size:13px;color:var(--muted);margin-top:20px}
.ap-done-page{text-align:center}
.ap-done-page h1{font-size:34px;letter-spacing:-.03em;margin:16px 0 12px}
.ap-done-page .result-breakdown{max-width:420px;margin:20px auto}
.ap-done-page .detail-form-actions{justify-content:center;flex-wrap:wrap}
.ap-done-icon{width:64px;height:64px;margin:0 auto;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:30px}
.ap-done-text{font-size:16px;line-height:1.75;color:var(--muted);max-width:560px;margin:0 auto}

/* --- Вход и кабинет (общие правила с polisre.com) --- */
.login-panel{max-width:520px}
.account-form{display:grid;gap:14px;margin-top:22px}
.cabinet-native{display:flex;flex-direction:column;font-size:13px;color:var(--muted)}
.cabinet-native input,.cabinet-native select,.cabinet-native textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);margin-top:6px}
.cabinet-native small{margin-top:6px}
.cabinet-native.wide,.wide{grid-column:1/-1}
.consent-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}
.consent-row input{margin-top:4px}
.cabinet-logout{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;margin-top:16px;padding:0}
.cabinet-logout .icon{width:18px;height:18px;flex-basis:18px}
.cabinet-form-grid{grid-template-columns:1fr 1fr}
.cabinet-note{font-size:13px;line-height:1.7;color:var(--muted);margin:10px 0 0}
.cabinet-policy-facts{margin:14px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px}
.cabinet-policy-facts>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.cabinet-policy-facts dt{font-size:12.5px;color:var(--muted)}
.cabinet-policy-facts dd{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.cabinet-panel .result-breakdown{margin:6px 0 0}
.cabinet-panel .result-breakdown>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:14px}
.cabinet-panel .result-breakdown dt{color:var(--muted)}
.cabinet-panel .result-breakdown dd{margin:0;font-weight:600;text-align:right}
.cabinet-file{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;font-weight:600;color:var(--ink)}
.cabinet-file:hover{border-color:var(--accent)}
.cabinet-file-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:44px;border-radius:6px;background:#e5484d;color:#fff;font-size:11px;font-weight:700}
.account-link{display:inline-flex;align-items:center;gap:6px}

@media(max-width:850px){.cabinet-policy-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-offer{grid-template-columns:minmax(0,1fr) auto}.ap-steps{grid-template-columns:repeat(2,1fr);row-gap:16px}.cabinet-form-grid{grid-template-columns:1fr}}
@media(max-width:600px){.tc-offer{grid-template-columns:1fr}.ap-progress{padding:24px 18px}.ap-status h2{font-size:22px}.tc-option{padding:12px}}
