/* Глобальные стили виджетов (формат промптов). */
[class^="calc-"] { max-width: 100%; margin: 10px auto; }
[class^="calc-"] .calculator-container {
    max-width: 100%; margin: 10px auto; padding: 22px;
    border: 1px solid #26324D; background-color: #0F1726;
}
[class^="calc-"] .calculator-input { margin: 16px 0; }
[class^="calc-"] .calculator-input label {
    display: block; margin-bottom: 8px; font-weight: 600; color: #E7EDF7; font-size: 14px;
}
[class^="calc-"] .calculator-input input,
[class^="calc-"] .calculator-input select {
    width: 100%; padding: 12px 14px; border: 1px solid #26324D; background: #141C2E;
    color: #E7EDF7; font-size: 16px; font-weight: 600; box-sizing: border-box;
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}
[class^="calc-"] .calculator-input select { font-family: "IBM Plex Sans", system-ui, sans-serif; font-weight: 500; font-size: 15px; }
[class^="calc-"] .calculator-input input:focus,
[class^="calc-"] .calculator-input select:focus { border-color: #4D8DFF; outline: none; }
[class^="calc-"] .input-hint { font-size: 13px; color: #64748F; margin-top: 5px; line-height: 1.45; }

/* Переключатель (режим, ставка, тип) */
[class^="calc-"] .toggle { display: flex; gap: 0; margin-bottom: 8px; border: 1px solid #26324D; }
[class^="calc-"] .toggle button {
    flex: 1; padding: 11px 8px; border: 0; border-right: 1px solid #26324D;
    background: #141C2E; color: #9FADC4; cursor: pointer; font-size: 13.5px; font-weight: 600;
    font-family: "IBM Plex Sans", system-ui, sans-serif; transition: background .15s, color .15s;
}
[class^="calc-"] .toggle button:last-child { border-right: 0; }
[class^="calc-"] .toggle button.active { background: #2E6BFF; color: #fff; }

/* Кнопка расчёта */
[class^="calc-"] .calculate-btn {
    background-color: #2E6BFF; color: #fff; padding: 15px 20px; border: 0; cursor: pointer;
    font-size: 15.5px; font-weight: 600; width: 100%; margin-top: 18px;
    font-family: "IBM Plex Sans", system-ui, sans-serif;
}
[class^="calc-"] .calculate-btn:hover { background-color: #1F55D6; }

/* Блок результата */
[class^="calc-"] .result {
    margin-top: 22px; padding: 18px; background-color: #141C2E;
    border-left: 4px solid #4D8DFF; display: none;
}
[class^="calc-"] .result.active { display: block; animation: calcWidgetIn .3s ease; }
@keyframes calcWidgetIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
[class^="calc-"] .result h3 { margin-top: 0; color: #E7EDF7; font-size: 17px; }

/* Главный результат */
[class^="calc-"] .dose-row-primary {
    background-color: #1A2439; border-left: 4px solid #FFB627; padding: 12px 16px; margin: 10px 0;
}
[class^="calc-"] .dose-row-primary strong { color: #9FADC4; font-size: 13px; font-weight: 600; }
[class^="calc-"] .dose-highlight {
    font-size: 1.45rem; font-weight: 700; color: #FFB627;
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}
[class^="calc-"] .dose-row-primary .dose-highlight { font-size: 1.8rem; line-height: 1.2; }
[class^="calc-"] .cat-text { font-size: 13.5px; font-weight: 600; margin-top: 4px; color: #FFB627; }

/* Дополнительные строки результата */
[class^="calc-"] .dose-row {
    background-color: #141C2E; border-left: 3px solid #26324D; padding: 10px 16px; margin: 8px 0;
    display: flex; justify-content: space-between; gap: 16px; align-items: baseline;
}
[class^="calc-"] .dose-row strong { color: #9FADC4; font-weight: 500; font-size: 14px; }
[class^="calc-"] .dose-row span {
    color: #E7EDF7; font-weight: 600; font-size: 16px; white-space: nowrap;
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}

/* Цветовые модификаторы: норма / умеренно / повышено / критично / снижено */
[class^="calc-"] .dose-row-primary.c-ok   { background-color: #12291F; border-color: #3DDC97; }
[class^="calc-"] .dose-highlight.c-ok, [class^="calc-"] .cat-text.c-ok { color: #3DDC97; }
[class^="calc-"] .dose-row-primary.c-mid  { background-color: #2B2410; border-color: #FFC75A; }
[class^="calc-"] .dose-highlight.c-mid, [class^="calc-"] .cat-text.c-mid { color: #FFC75A; }
[class^="calc-"] .dose-row-primary.c-hi   { background-color: #2C1E0F; border-color: #FF9F43; }
[class^="calc-"] .dose-highlight.c-hi, [class^="calc-"] .cat-text.c-hi { color: #FF9F43; }
[class^="calc-"] .dose-row-primary.c-crit { background-color: #2C1214; border-color: #FF5C5C; }
[class^="calc-"] .dose-highlight.c-crit, [class^="calc-"] .cat-text.c-crit { color: #FF5C5C; }
[class^="calc-"] .dose-row-primary.c-low  { background-color: #10233B; border-color: #5AB0FF; }
[class^="calc-"] .dose-highlight.c-low, [class^="calc-"] .cat-text.c-low { color: #5AB0FF; }

/* Зелёная подсказка */
[class^="calc-"] .info-note {
    background-color: #12291F; border-left: 4px solid #3DDC97; padding: 12px 14px;
    margin-top: 12px; font-size: 14px; color: #9FADC4;
}
[class^="calc-"] .info-note:empty { display: none; }
/* Жёлтое предупреждение */
[class^="calc-"] .warning {
    background-color: #2B2410; border-left: 4px solid #FFC75A; padding: 12px 14px;
    margin-top: 14px; font-size: 13.5px; color: #9FADC4;
}
[class^="calc-"] .warning strong { color: #FFC75A; }
/* Красная ошибка */
[class^="calc-"] .error-block {
    background-color: #2C1214; border-left: 4px solid #FF5C5C; padding: 12px 14px;
    margin-top: 15px; display: none; font-size: 14px; color: #FF5C5C;
}
/* Параметры расчёта */
[class^="calc-"] .result-params {
    font-size: 13px; color: #64748F; margin-bottom: 12px; padding: 8px 0;
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}
[class^="calc-"] .result-params span { display: inline-block; margin-right: 16px; }
[class^="calc-"] .result-params strong { color: #9FADC4; }

/* Контентная зона */
[class^="calc-"] .content-section { max-width: 100%; margin: 0 auto; line-height: 1.65; color: #9FADC4; font-size: 16.5px; }
[class^="calc-"] .content-section h2 { color: #E7EDF7; margin-top: 30px; font-size: 24px; }
[class^="calc-"] .content-section h3 { color: #E7EDF7; margin-top: 26px; font-size: 18px; }
[class^="calc-"] .content-section p  { margin: 0 0 1.1em; max-width: 70ch; }
[class^="calc-"] .content-section ul { padding-left: 22px; }
[class^="calc-"] .content-section li { margin: 7px 0; }
[class^="calc-"] .content-section strong, [class^="calc-"] .content-section b { color: #E7EDF7; }

/* Справочная таблица */
[class^="calc-"] .dose-table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
[class^="calc-"] .dose-table th, [class^="calc-"] .dose-table td { border: 1px solid #26324D; padding: 9px 12px; text-align: left; }
[class^="calc-"] .dose-table th { background-color: #1A2439; font-weight: 600; color: #E7EDF7; }
[class^="calc-"] .dose-table tr:nth-child(even) td { background-color: #0F1726; }
/* Вопросы и ответы (FAQ) */
[class^="calc-"] .calc-faq__item { background: #141C2E; border: 1px solid #1C2740; margin-bottom: 8px; }
[class^="calc-"] .calc-faq__q { cursor: pointer; padding: 14px 18px; font-weight: 600; color: #E7EDF7; font-size: 15.5px; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
[class^="calc-"] .calc-faq__q::-webkit-details-marker { display: none; }
[class^="calc-"] .calc-faq__q::after { content: ""; flex: 0 0 auto; width: 10px; height: 10px; border-right: 2px solid #FFB627; border-bottom: 2px solid #FFB627; transform: rotate(45deg); transition: transform .2s; }
[class^="calc-"] .calc-faq__item[open] .calc-faq__q { background: #0F1726; border-bottom: 1px solid #1C2740; }
[class^="calc-"] .calc-faq__item[open] .calc-faq__q::after { transform: rotate(-135deg); }
[class^="calc-"] .calc-faq__a { padding: 14px 18px; margin: 0; font-size: 15px; line-height: 1.6; color: #9FADC4; max-width: none; }

.ep { max-width: 100%; color: #9FADC4; font-size: 16px; line-height: 1.65; }
.ep-hero {
    background: linear-gradient(135deg, #0F1726 0%, #141C2E 55%, #1A2439 100%);
    border: 1px solid #26324D; border-left: 4px solid #FFB627;
    padding: 34px 36px; margin-bottom: 22px; position: relative; overflow: hidden;
}
.ep-hero::before { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px;
    border-radius: 50%; background: rgba(77,141,255,.08); pointer-events: none; }
.ep-hero::after { content: ""; position: absolute; left: 40%; bottom: -120px; width: 220px; height: 220px;
    border-radius: 50%; background: rgba(255,182,39,.05); pointer-events: none; }
.ep-hero__badge {
    display: inline-block; background: rgba(255,182,39,.1); color: #FFB627; border: 1px solid rgba(255,182,39,.3);
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11.5px; letter-spacing: .06em;
    text-transform: uppercase; padding: 5px 12px; margin-bottom: 16px; position: relative;
}
.ep-hero h1 { color: #E7EDF7; font-size: 32px; line-height: 1.2; margin: 0 0 12px; position: relative; }
.ep-hero__sub { color: #9FADC4; font-size: 16.5px; max-width: 62ch; margin: 0 0 20px; position: relative; }
.ep-hero__meta { display: flex; flex-wrap: wrap; gap: 10px; position: relative; }
.ep-hero__pill {
    display: inline-flex; align-items: center; gap: 7px; background: #0F1726; border: 1px solid #26324D;
    color: #9FADC4; font-size: 13.5px; font-weight: 500; padding: 8px 14px;
}
.ep-hero__pill svg { width: 15px; height: 15px; stroke: #64748F; fill: none; stroke-width: 1.75; }
.ep-hero__pill--free { color: #3DDC97; border-color: rgba(61,220,151,.3); background: #12291F; }
.ep-hero__pill--free svg { stroke: #3DDC97; }

.ep-stats { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.ep-stat {
    flex: 1 1 150px; background: #141C2E; border: 1px solid #1C2740; border-top: 3px solid #FFB627;
    padding: 18px 16px; text-align: center;
}
.ep-stat__num { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 1.9em; font-weight: 700; color: #FFB627; line-height: 1; }
.ep-stat__label { color: #64748F; font-size: 12.5px; margin-top: 6px; }

.ep-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 26px; }
.ep-card { background: #141C2E; border: 1px solid #1C2740; padding: 18px; transition: transform .15s, border-color .15s; }
.ep-card:hover { transform: translateY(-4px); border-color: #4D8DFF; }
.ep-card__icon {
    display: grid; place-items: center; width: 46px; height: 46px;
    background: rgba(77,141,255,.1); border-left: 3px solid #4D8DFF; margin-bottom: 12px;
}
.ep-card__icon svg { width: 22px; height: 22px; stroke: #4D8DFF; fill: none; stroke-width: 1.75; }
.ep-card__label { color: #64748F; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.ep-card__value { color: #E7EDF7; font-weight: 600; font-size: 15px; margin-top: 4px; }

.ep-section { margin: 30px 0; }
.ep h2 { color: #E7EDF7; font-size: 22px; margin: 0 0 14px; padding-bottom: 10px; position: relative; }
.ep h2::after { content: ""; display: block; width: 44px; height: 3px; background: #FFB627; margin-top: 10px; }
.ep p { margin: 0 0 1em; max-width: 70ch; }
.ep b, .ep strong { color: #E7EDF7; }
.ep-citation {
    background: #0F1726; border-left: 4px solid #4D8DFF; padding: 16px 20px;
    color: #E7EDF7; font-size: 16.5px; margin: 0 0 16px; max-width: none;
}
.ep ul { list-style: none; padding: 0; margin: 0 0 1em; }
.ep ul li { position: relative; padding: 8px 0 8px 26px; border-bottom: 1px solid #1C2740; }
.ep ul li::before { content: ""; position: absolute; left: 4px; top: 16px; width: 7px; height: 7px; background: #FFB627; }

.ep-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.ep-tag { background: #1A2439; color: #9FADC4; border: 1px solid #1C2740; font-size: 13px; padding: 5px 12px;
    font-family: "IBM Plex Mono", ui-monospace, monospace; }

.ep-table { width: 100%; border-collapse: collapse; margin: 4px 0 1em; }
.ep-table th { background: #1A2439; color: #E7EDF7; font-weight: 600; }
.ep-table th, .ep-table td { border: 1px solid #26324D; padding: 11px 14px; font-size: 14.5px; text-align: left; }
.ep-table tr:hover td { background: #1A2439; }
.ep-badge-yes { display: inline-block; background: #12291F; color: #3DDC97; font-size: 12.5px; font-weight: 600; padding: 3px 10px; }
.ep-badge-pay { display: inline-block; background: rgba(255,182,39,.1); color: #FFB627; font-size: 12.5px; font-weight: 600; padding: 3px 10px; }
.ep-badge-pending { display: inline-block; background: #0F1726; color: #64748F; font-size: 12.5px; font-weight: 600; padding: 3px 10px; }

.ep-orgs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 14px; }
.ep-org { background: #141C2E; border: 1px solid #1C2740; border-left: 3px solid #4D8DFF; padding: 16px; }
.ep-org p { margin: 0; font-size: 14px; }
.ep-org b { display: block; font-size: 15px; margin-bottom: 4px; }
.ep-committee { display: flex; gap: 14px; align-items: flex-start; background: #0F1726; border: 1px solid #1C2740; padding: 16px; }
.ep-committee__icon { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; background: rgba(255,182,39,.1); border-left: 3px solid #FFB627; }
.ep-committee__icon svg { width: 20px; height: 20px; stroke: #FFB627; fill: none; stroke-width: 1.75; }
.ep-committee__text p { margin: 0; font-size: 14.5px; }
.ep-committee__text a { color: #4D8DFF; }

.ep-register { background: #0F1726; border: 1px solid #26324D; padding: 30px; margin: 30px 0; }
.ep-register h2 { color: #E7EDF7; }
.ep-register h2::after { background: rgba(255,182,39,.5); }
.ep-register__steps { display: grid; gap: 12px; margin: 0 0 22px; }
.ep-register__step { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.ep-register__step-num {
    flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; background: #2E6BFF; color: #fff;
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 700;
}
.ep-register__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ep-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; font-weight: 600; font-size: 15px; text-decoration: none; }
.ep-btn--primary { background: #FFB627; color: #0D1321; }
.ep-btn--primary:hover { background: #E5A31D; color: #0D1321; }
.ep-btn--outline { background: transparent; border: 1px solid #26324D; color: #9FADC4; }
.ep-btn--outline:hover { border-color: #4D8DFF; color: #E7EDF7; }

.ep-faq__item { background: #141C2E; border: 1px solid #1C2740; margin-bottom: 8px; }
.ep-faq__q {
    cursor: pointer; padding: 14px 18px; font-weight: 600; color: #E7EDF7; font-size: 15.5px; list-style: none;
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.ep-faq__q::-webkit-details-marker { display: none; }
.ep-faq__q::after { content: ""; flex: 0 0 auto; width: 10px; height: 10px; border-right: 2px solid #FFB627; border-bottom: 2px solid #FFB627; transform: rotate(45deg); transition: transform .2s; }
.ep-faq__item[open] .ep-faq__q { background: #0F1726; border-bottom: 1px solid #1C2740; }
.ep-faq__item[open] .ep-faq__q::after { transform: rotate(-135deg); }
.ep-faq__a { padding: 14px 18px; margin: 0; font-size: 15px; max-width: none; }

@media (max-width: 640px) {
    .ep-hero { padding: 24px 20px; }
    .ep-hero h1 { font-size: 25px; }
    .ep-register { padding: 22px; }
    .ep-register__btns .ep-btn { flex: 1; justify-content: center; }
}
@media (max-width: 400px) {
    .ep-stat { flex-basis: 100%; }
    .ep-hero h1 { font-size: 22px; }
}
