/* Калькулятор сроков по 223-ФЗ: стили изолированы в .s223. */
.s223 {
    --s223-line: #dde8f5;
    --s223-ink: #213b5b;
    --s223-soft: #ffffff;
    --s223-blue: #246dc2;
    color: var(--s223-ink);
}
.s223 [hidden] { display: none!important; }

/* Шапка — как в калькуляторе календарных и рабочих дней: без отдельной пиктограммы,
   с единым левым отступом и компактной контурной меткой версии. */
.s223 .s223-hero-content { display:block; position:relative; z-index:1; width:100%; }
.s223 .s223-hero-content > div { min-width:0; }
.s223 .s223-hero-content .hero-title { font-weight:750; line-height:1.2; letter-spacing:-.02em; }
.s223 .s223-hero-content .hero-text { font-size:1rem; line-height:1.55; }
.s223 .s223-v { display:inline-block; font-size:.56em; font-weight:650; line-height:1.4; letter-spacing:0; vertical-align:middle; color:#1f6bc1; border:1px solid #b9dcff; background:rgba(255,255,255,.46); padding:.11rem .5rem; border-radius:999px; white-space:nowrap; margin-left:.35rem; }

/* Заголовок и карточки формы: те же бело-голубые тона, что у результатов. */
.s223 .s223-form-heading { display:flex; align-items:center; gap:.85rem; margin:0 0 1rem; }
.s223 .s223-form-heading > div { min-width:0; }
.s223 .s223-form-heading-icon { display:grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border-radius:14px; background:#e4efff; color:#216bd0; font-size:1.45rem; }
.s223 .s223-form-heading h2 { margin:0; color:#193b69; font-weight:750; letter-spacing:-.02em; }
.s223 .s223-form-heading p { font-size:.89rem; line-height:1.5; color:#5e7186; }
.s223 .s223-panel {
    background:linear-gradient(145deg,#ffffff 0%,#ffffff 72%,#fafbfd 100%);
    border:1px solid #e0e6ed;
    border-radius:15px;
    padding:1.2rem 1.25rem;
    box-shadow:0 8px 25px rgba(32,68,112,.045);
}
.s223 .s223-panel-head { display:flex; align-items:center; gap:.86rem; margin-bottom:1.12rem; }
.s223 .s223-panel-head > div { min-width:0; }
.s223 .s223-panel-head h3 { font-size:1.12rem; font-weight:750; color:#203e66; letter-spacing:-.01em; }
.s223 .s223-panel-head p { color:#5f7186!important; font-size:.9rem!important; line-height:1.5; }
.s223 .s223-step { display:inline-grid; place-items:center; flex:0 0 37px; width:37px; height:37px; border:1px solid #d4e6ff; border-radius:12px; background:#e9f3ff; color:#276fbe; font-weight:750; font-size:.98rem; font-variant-numeric:tabular-nums; }

/* Выбор режима и вида закупки. */
.s223 .s223-options { display:grid; gap:.75rem; }
.s223 .s223-options-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.s223 .s223-option { display:block; cursor:pointer; position:relative; min-width:0; }
.s223 .s223-option input { position:absolute; opacity:0; width:1px; height:1px; }
.s223 .s223-option > span {
    display:flex; flex-direction:column; gap:.27rem; min-height:96px; height:100%;
    border:1px solid #dce6f1; border-radius:11px;
    padding:.92rem 2.45rem .88rem .95rem;
    background:#fff; box-shadow:0 2px 6px rgba(34,70,110,.018);
    transition:border-color .15s,background .15s,box-shadow .15s;
}
.s223 .s223-option > span::before { content:""; position:absolute; top:1rem; right:1rem; width:17px; height:17px; border-radius:50%; background:#fff; border:2px solid #b9c9db; }
.s223 .s223-option strong { display:block; font-size:.98rem; color:#294564; line-height:1.35; }
.s223 .s223-option small { display:block; color:#5f7186; font-size:.87rem; line-height:1.45; }
.s223 .s223-option:hover > span { border-color:#9cbbe0; background:#fbfcfe; box-shadow:0 3px 13px rgba(36,93,167,.045); }
.s223 .s223-option input:checked + span { border-color:#6ba8f8; background:linear-gradient(125deg,#f7faff,#f1f6fd); box-shadow:inset 0 0 0 1px #76b0fa,0 3px 11px rgba(42,111,194,.06); }
.s223 .s223-option input:checked + span::before { border:5px solid #2f77cc; }
.s223 .s223-option input:focus-visible + span { outline:3px solid #87b8f1; outline-offset:2px; }

/* Поля, подсказки и опциональные разделы без серой заливки сайта. */
.s223 #srok223-v2-form .form-label { font-size:.94rem; color:#344e6d; }
.s223 #srok223-v2-form .form-text { color:#566b81; font-size:.85rem; line-height:1.45; }
.s223 #srok223-v2-form .form-control,
.s223 #srok223-v2-form .form-select {
    color:#2b415e; background-color:#fff; border:1px solid #d5e0ed;
    border-radius:8px; min-height:42px; font-size:.96rem; box-shadow:none;
}
.s223 #srok223-v2-form .form-control:focus,
.s223 #srok223-v2-form .form-select:focus { border-color:#74aaf0; box-shadow:0 0 0 .2rem rgba(54,125,210,.11); }
.s223 #srok223-v2-form .form-control:disabled,
.s223 #srok223-v2-form .form-select:disabled { background-color:#f3f6fa; color:#607186; }
.s223 .s223-note { display:flex; align-items:flex-start; gap:.65rem; padding:.8rem .95rem; background:#f8fafc; border-radius:10px; font-size:.9rem; line-height:1.55; color:#50657c; border:1px solid #e0e6ed; }
.s223 .s223-note i { flex-shrink:0; color:#367dca; }
.s223 .s223-subtitle { color:#2d4b70; font-size:1rem; font-weight:700; margin-bottom:.7rem; }
.s223 #srok223-v2-form .form-check-input { border-color:#aec4df; cursor:pointer; }
.s223 #srok223-v2-form .form-check-input:checked { background-color:#2876cd; border-color:#2876cd; }
.s223 #srok223-v2-form .form-switch .form-check-label { color:#344f70; cursor:pointer; }

/* Раскрывающаяся форма этапов и договора. */
.s223 .s223-expand { padding:0; overflow:hidden; }
.s223 .s223-expand > summary { list-style:none; display:flex; align-items:center; gap:.85rem; cursor:pointer; padding:1rem 1.2rem; background:linear-gradient(105deg,#fff,#fbfcfe); }
.s223 .s223-expand > summary::-webkit-details-marker { display:none; }
.s223 .s223-expand > summary:hover { background:#f7f9fc; }
.s223 .s223-expand > summary:focus-visible { outline:3px solid #87b8f1; outline-offset:-3px; }
.s223 .s223-expand-icon { display:inline-flex; justify-content:center; align-items:center; border-radius:11px; width:40px; height:40px; background:#e4efff; color:#2774c6; flex-shrink:0; font-size:1.12rem; }
.s223 .s223-expand > summary span:nth-child(2) { flex:1; min-width:0; }
.s223 .s223-expand > summary strong { display:block; color:#2a4566; font-weight:700; line-height:1.35; }
.s223 .s223-expand > summary small { display:block; color:#63758a; font-size:.88rem; line-height:1.4; margin-top:.15rem; }
.s223 .s223-chevron { color:#7f99b6; transition:transform .15s; }
.s223 .s223-expand[open] .s223-chevron { transform:rotate(180deg); }
.s223 .s223-expand-body { border-top:1px solid var(--s223-line); padding:1.15rem 1.2rem; background:#fff; }
.s223 .s223-stage-heading { display:grid; grid-template-columns:minmax(185px,2fr) minmax(84px,.7fr) minmax(125px,.95fr) minmax(155px,1.15fr); gap:.75rem; background:#f4f6f9; padding:.62rem .9rem; color:#566b81; font-size:.85rem; font-weight:700; }
.s223 .s223-stage-list { border:1px solid #dfebf8; border-radius:11px; overflow:hidden; }
.s223 .s223-stage { display:grid; grid-template-columns:minmax(185px,2fr) minmax(84px,.7fr) minmax(125px,.95fr) minmax(155px,1.15fr); gap:.75rem; align-items:center; padding:.8rem .9rem; background:#fff; }
.s223 .s223-stage + .s223-stage { border-top:1px solid #eaf0f7; }
.s223 .s223-stage:nth-child(odd) { background:#fafbfc; }
.s223 .s223-stage .form-label { margin:0; line-height:1.35; }
.s223 .s223-stage small { display:block; font-size:.86rem; color:#64758a; line-height:1.4; margin-top:.2rem; }

/* Отдельная светлая строка основного действия, как в блоке результатов. */
.s223 .s223-form-actions { background:linear-gradient(120deg,#ffffff,#f8fafc); border:1px solid #e0e6ed; border-radius:12px; padding:.85rem 1rem; }
.s223 .s223-form-actions #s223-submit { border-radius:9px; min-height:43px; font-weight:650; background:#2572cb; border-color:#2572cb; box-shadow:0 3px 10px rgba(37,114,203,.13); }
.s223 .s223-form-actions #s223-submit:hover { background:#1f60ac; border-color:#1f60ac; }
.s223 .s223-actions-hint { color:#788ba5; font-size:.86rem; }
/* Дату вводят в одно стандартное по ширине поле, без растяжения на полэкрана. */
.s223 .s223-main-dates > [class*="col-"] { max-width:520px; }

/* Результаты: один список этапов вместо повторяющих его больших карточек дат. */
.s223 .s223-results {
    --s223-result-line: #dce7f3;
    position:relative;
    border:1px solid #dfe9f6;
    border-radius:17px;
    background:linear-gradient(155deg,#fbfcfe 0%,#fff 50%,#fff 100%);
    padding:1.5rem 1.45rem 1.35rem;
    box-shadow:0 12px 32px rgba(32,68,112,.055);
    scroll-margin-top:1.25rem;
}
.s223 .s223-results-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.2rem; }
.s223 .s223-results-heading { display:flex; align-items:center; gap:.85rem; min-width:0; }
.s223 .s223-results-heading h2 { color:#193b69; font-size:1.5rem; line-height:1.25; font-weight:750; letter-spacing:-.02em; }
.s223 .s223-results-heading-icon { display:grid; place-items:center; flex-shrink:0; width:46px; height:46px; border-radius:14px; background:#e4efff; color:#216bd0; font-size:1.48rem; }
.s223 .s223-results-subtitle { color:#70829c; font-size:.92rem; line-height:1.45; }
.s223 .s223-results-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.s223 .s223-recalculate,.s223 .s223-copy-all { display:inline-flex; align-items:center; gap:.45rem; font-size:.87rem; font-weight:600; background:#fff; padding:.5rem .75rem; }
.s223 .s223-recalculate { border-color:#a6c7ef; color:#246bba; }
.s223 .s223-copy-all { border-color:#d1dae6; color:#526e8d; }
.s223 .s223-recalculate:hover,.s223 .s223-copy-all:hover { color:#fff; }
.s223 .s223-change-summary { display:flex; align-items:flex-start; gap:.7rem; padding:.8rem .9rem; background:#eefaf5; border:1px solid #cfe9da; border-radius:10px; margin-top:1rem; font-size:.93rem; line-height:1.45; color:#3c6753; }
.s223 .s223-message-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1rem; line-height:1.3; }
.s223 .s223-change-summary .s223-message-icon { color:#258a5e; }
.s223 .s223-controls { margin-top:1rem; }
.s223 .s223-section-title { margin:0 0:.52rem; font-size:1.08rem; line-height:1.4; color:#233f64; font-weight:700; }
.s223 .s223-control { display:flex; align-items:flex-start; gap:.75rem; padding:.95rem 1.05rem; margin-top:.55rem; background:#fffbf4; border:1px solid #eeddbd; border-radius:9px; font-size:.91rem; line-height:1.55; color:#64563d; }
.s223 .s223-control .s223-message-icon { color:#bd8533; font-size:1.07rem; margin-top:.05rem; }
.s223 .s223-control strong { display:block; color:#594832; margin-bottom:.1rem; font-weight:700; }
.s223 .s223-control-info { background:#f8fafc; border-color:#dce5f0; color:#50657b; }
.s223 .s223-control-info .s223-message-icon { color:#2c7bcc; }
.s223 .s223-control-info strong { color:#24456d; }
.s223 .s223-flow { margin-top:1.15rem; }
.s223 .s223-flow-intro { margin:0 0 1rem; padding:0 0 .7rem; border-bottom:1px solid #e5edf7; color:#5c7086; font-size:.93rem; line-height:1.55; }
.s223 .s223-timeline { position:relative; }
.s223 .s223-timeline::before { content:""; position:absolute; left:17px; top:18px; bottom:23px; width:2px; background:#cfe1f9; }
.s223 .s223-timeline-item { position:relative; display:flex; gap:1rem; align-items:stretch; margin:0 0:.72rem; }
.s223 .s223-timeline-marker { position:relative; z-index:1; display:grid; place-items:center; flex-shrink:0; align-self:flex-start; width:36px; height:36px; border-radius:50%; background:#d7e9ff; border:1px solid #d0e4fb; color:#3274bf; font-size:.9rem; font-weight:750; font-variant-numeric:tabular-nums; }
.s223 .s223-timeline-content { flex:1; display:flex; align-items:center; gap:1rem; min-width:0; padding:1.05rem 1.1rem; background:#fff; border:1px solid #dfe9f5; border-radius:12px; box-shadow:0 3px 12px rgba(36,67,108,.032); }
.s223 .s223-timeline-icon { display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; border-radius:11px; background:#eaf2ff; color:#2c74c9; font-size:1.28rem; }
.s223 .s223-timeline-main { flex:1; min-width:0; }
.s223 .s223-timeline-title { margin:0 0:.25rem; color:#234164; font-size:1.02rem; font-weight:700; line-height:1.45; }
.s223 .s223-source { color:#5d7185; font-size:.87rem; line-height:1.55; }
.s223 .s223-timeline-note { margin:.3rem 0 0; font-size:.9rem; line-height:1.55; color:#5e7288; }
.s223 .s223-timeline-right { display:flex; flex-shrink:0; gap:.35rem; align-items:center; justify-content:flex-end; margin-left:.5rem; }
.s223 .s223-timeline-right strong { white-space:nowrap; color:#18508d; font-size:1.02rem; font-weight:750; font-variant-numeric:tabular-nums; }
.s223 .s223-timeline-right button { display:grid; place-items:center; width:31px; height:31px; border:1px solid transparent; border-radius:8px; color:#90a3ba; background:transparent; transition:color .12s,border-color .12s,background .12s; }
.s223 .s223-timeline-pending { color:#8996a9; font-size:.86rem; }
.s223 .s223-empty-rows { color:#8191a7; padding:1rem; font-size:.91rem; }
.s223 .s223-afterflow { margin:.95rem 0 0; font-size:.88rem; color:#738399; line-height:1.5; }
.s223 .s223-disclaimer { display:flex; gap:.75rem; align-items:flex-start; padding:1rem 1.05rem; margin-top:1.2rem; background:#f7f9fc; border:1px solid #e0e6ee; border-radius:10px; font-size:.89rem; line-height:1.55; color:#556982; }
.s223 .s223-disclaimer strong { color:#426397; }
.s223 .s223-disclaimer-icon { display:grid; flex-shrink:0; place-items:center; width:27px; height:27px; background:#e6edff; border-radius:8px; color:#526ed1; font-size:.95rem; }
/* Период договора — компактная строка после этапов, не дублирующая основные даты. */
.s223 .s223-contract-strip { display:flex; align-items:center; gap:1rem; padding:1rem 1.1rem; margin-top:1rem; border:1px solid #d3e3f7; border-radius:12px; background:#f7f9fc; }
.s223 .s223-contract-strip-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:11px; background:#deebff; color:#2571c9; font-size:1.2rem; }
.s223 .s223-contract-strip-main { flex:1; min-width:0; }
.s223 .s223-contract-strip-main > strong { display:block; color:#244363; font-size:1rem; font-weight:700; }
.s223 .s223-contract-strip-source { font-size:.86rem; color:#7387a0; line-height:1.5; }
.s223 .s223-contract-strip-dates { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; color:#20558f; font-size:1rem; font-variant-numeric:tabular-nums; }
.s223 .s223-note a { color:#1a65b8; font-weight:650; text-underline-offset:2px; }
.s223 .s223-note a:hover { color:#104b8b; }
.s223 [data-s223-copy],.s223 [data-s223-copy-all] { cursor:pointer; }
@media (max-width: 800px) {
    .s223 .s223-stage-heading {display:none;}
    .s223 .s223-options-3 { grid-template-columns:1fr; }
    .s223 .s223-option > span { min-height:0; }
    .s223 .s223-stage { grid-template-columns:1fr 1fr 1.35fr; gap:.65rem; }
    .s223 .s223-stage>div:first-child { grid-column:1 / -1; }
}
@media (max-width: 575px) {
    .s223 .s223-panel { padding:1rem .85rem; }
    .s223 .s223-contract-strip { flex-wrap:wrap; gap:.65rem; }
    .s223 .s223-contract-strip-dates { flex-basis:100%; margin-left:54px; }
    .s223 .s223-expand { padding:0; }
    .s223 .s223-expand > summary { padding:1rem .85rem; }
    .s223 .s223-expand-body { padding:1rem .75rem; }
    .s223 .s223-results { padding:1rem .85rem; border-radius:13px; }
    .s223 .s223-results-header { align-items:flex-start; }
    .s223 .s223-results-heading-icon { width:40px; height:40px; font-size:1.3rem; }
    .s223 .s223-timeline-content { align-items:flex-start; flex-wrap:wrap; gap:.65rem; padding:.9rem .8rem; }
    .s223 .s223-timeline-main { flex-basis:calc(100% - 52px); }
    .s223 .s223-timeline-right { margin-left:52px; flex-basis:calc(100% - 52px); justify-content:space-between; border-top:1px solid #edf1f8; padding-top:.5rem; }
    .s223 .s223-timeline-marker { width:32px; height:32px; }
    .s223 .s223-timeline::before { left:15px; }

    .s223 .s223-stage { grid-template-columns:1fr 1fr; }
    .s223 .s223-stage>div:last-child { grid-column:1 / -1; }

}

@media (max-width: 820px) and (min-width: 576px) {
}
@media (prefers-reduced-motion: reduce) {
    .s223 .s223-timeline-right button { transition:none; }
}

/* Адаптация именно формы (оформление результатов остаётся прежним). */
@media (max-width:575px) {
    .s223 .s223-form-heading-icon { flex-basis:40px; width:40px; height:40px; font-size:1.25rem; }
    .s223 .s223-form-heading { align-items:flex-start; gap:.7rem; }
    .s223 .s223-form-heading h2 { font-size:1.35rem; }
    .s223 .s223-panel-head { align-items:flex-start; gap:.7rem; }
    .s223 .s223-step { flex-basis:34px; width:34px; height:34px; }
    .s223 .s223-option > span { min-height:0; padding:.8rem 2.45rem .8rem .8rem; }
    .s223 .s223-form-actions { padding:.75rem; }
    .s223 .s223-form-actions #s223-submit { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion: reduce) {
    .s223 .s223-option > span,.s223 .s223-chevron { transition:none; }
}

.s223 .s223-timeline-right button:focus-visible { outline:2px solid #347dc9; outline-offset:2px; }

/* v.2.5 — короткий основной сценарий с договором, без отдельного переключателя. */
.s223 .s223-panel { padding:1.05rem 1.2rem; }
.s223 .s223-panel-head { margin-bottom:.8rem; }
.s223 .s223-option > span { min-height:75px; padding:.75rem 2.3rem .75rem .9rem; }
.s223 .s223-option > span::before { top:.86rem; }
.s223 .s223-options { gap:.6rem; }
.s223 .s223-optional { color:#7c8fa6; font-weight:400; font-size:.86em; }
.s223 .s223-form-heading { margin-bottom:.75rem; }
.s223 .s223-results { margin-top:1rem!important; }
.s223 .s223-flow { margin-top:.55rem; }
.s223 .s223-timeline-item { margin-bottom:.6rem; }
.s223 .s223-timeline-content { padding:.95rem 1.05rem; }
.s223 .s223-actions-hint { font-size:.86rem; }
@media(max-width:575px){
    .s223 .s223-panel { padding:1rem .85rem; }
    .s223 .s223-inline-details-body { padding:.85rem; }
    .s223 .s223-option > span { min-height:0; }
}

/* v.2.6 — акцент на выборе конкретного способа закупки. */
.s223 .s223-method-picker {
    position:relative;
    margin-top:.45rem;
    padding:1rem 1.1rem;
    border:1px solid #d1dce9;
    border-left:4px solid #2777d2;
    border-radius:12px;
    background:linear-gradient(120deg,#f0f6ff 0%,#f9fcff 100%);
    box-shadow:0 4px 15px rgba(36,106,191,.065);
}
.s223 .s223-method-picker .form-label {
    display:flex;
    gap:.55rem;
    align-items:center;
    color:#1e568f!important;
    font-weight:700!important;
    margin-bottom:.55rem;
}
.s223 .s223-method-picker .form-label i { color:#2577cb; font-size:1.08rem; }
.s223 #srok223-v2-form .s223-method-picker .form-select {
    background-color:#fff;
    border:1px solid #b8cadd;
    color:#264563;
    font-weight:650;
    font-size:1.02rem;
    min-height:44px;
}
.s223 .s223-method-picker .form-text { margin-top:.55rem; }
.s223 .s223-contract-only-hint {
    background:#f7fafc;
    border-color:#dce6ef;
    color:#3d566f;
}
@media (max-width:575px) {
    .s223 .s223-method-picker { padding:.8rem .85rem; }
}

/* v.2.7 — меньше синей заливки, больше контраста в подсказках.
   Синий остаётся для выбранного способа, ссылок и главной кнопки. */
.s223 .s223-panel .text-muted,
.s223 #srok223-v2-form .s223-optional { color:#596e85!important; }
.s223 .s223-method-picker {
    border-left-color:#367cc7;
    box-shadow:none;
}
.s223 .s223-method-picker .form-text { color:#52687e; }
.s223 .s223-change-section {
    background:#fafbfc;
    border:1px solid #e0e6ed;
    border-radius:11px;
    padding:.9rem 1rem;
}
.s223 .s223-change-toggle { display:flex; align-items:center; gap:.65rem; padding-left:0; min-height:26px; }
.s223 .s223-change-toggle .form-check-input {
    position:static; float:none; margin:0; flex-shrink:0;
    width:2.1rem; height:1.12rem;
}
.s223 .s223-change-toggle .form-check-label {
    font-weight:650; color:#334d67; line-height:1.45;
}
.s223 .s223-change-fields {
    padding-top:.9rem;
    border-top:1px solid #e1e7ee;
}
.s223 .s223-date-shortcuts {
    display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; margin-top:.55rem;
}
.s223 .s223-date-quick {
    appearance:none; background:#fff; border:1px solid #d4dee9;
    border-radius:7px; padding:.3rem .8rem; color:#48617c;
    font-size:.85rem; font-weight:600; line-height:1.4;
    transition:background .15s,border-color .15s,color .15s;
}
.s223 .s223-date-quick:hover { background:#f2f6fb; color:#205d9f; border-color:#a6c2e2; }
.s223 .s223-date-quick:focus-visible { outline:2px solid #347dc9; outline-offset:2px; }
@media (max-width:575px) {
    .s223 .s223-change-section { padding:.85rem; }
    .s223 .s223-date-quick { padding:.36rem .8rem; }
}
@media (prefers-reduced-motion:reduce) {
    .s223 .s223-date-quick { transition:none; }
}

/* v.2.8 — три действия договора, без произвольных событий (отложены до v.3). */
.s223 .s223-stage-section {
    grid-column:1 / -1; padding:.72rem .9rem;
    color:#2c4c70; background:#f3f6fa; border-top:1px solid #e1e9f1;
    font-size:.92rem; font-weight:700;
}
.s223 .s223-stage-section-title { margin:.2rem 0 .6rem; }
.s223 .s223-stage-section + .s223-stage { border-top:0; }

.s223 .s223-change-legal-note { margin-top:.35rem; font-size:.86rem; color:#5d7187; line-height:1.5; }

/* v2.9 — заметные hover-состояния даже при глобальных переопределениях Bootstrap. */
.s223 .s223-results-actions .btn.s223-recalculate:hover,
.s223 .s223-results-actions .btn.s223-recalculate:focus-visible {
    background-color:#216ab9;
    border-color:#216ab9;
    color:#fff !important;
    --bs-btn-hover-color:#fff;
    --bs-btn-hover-bg:#216ab9;
    --bs-btn-hover-border-color:#216ab9;
}
.s223 .s223-results-actions .btn.s223-copy-all:hover,
.s223 .s223-results-actions .btn.s223-copy-all:focus-visible {
    background-color:#485f7d;
    border-color:#485f7d;
    color:#fff !important;
    --bs-btn-hover-color:#fff;
    --bs-btn-hover-bg:#485f7d;
    --bs-btn-hover-border-color:#485f7d;
}
.s223 .s223-results-actions .btn:hover i,
.s223 .s223-results-actions .btn:hover span,
.s223 .s223-results-actions .btn:focus-visible i,
.s223 .s223-results-actions .btn:focus-visible span { color:inherit !important; }

/* Исходная дата — отдельная спокойная строка без номера этапа. */
.s223 .s223-origin-row {
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
    gap:.5rem 1rem; padding:.8rem 1rem; margin:0 0 1rem;
    background:#f4f6f8; border:1px solid #e0e5eb; border-radius:10px;
    color:#52657a;
}
.s223 .s223-origin-description {display:flex; align-items:center; flex-wrap:wrap; gap:.4rem .8rem; min-width:0;}
.s223 .s223-origin-label {font-size:.78rem; font-weight:700; padding:.25rem .52rem;
    border-radius:6px; background:#e7ebf0; color:#506176; white-space:nowrap;}
.s223 .s223-origin-row h4 {font-size:.94rem; font-weight:600; line-height:1.4; margin:0; color:#52657a;}
.s223 .s223-origin-date {display:flex; align-items:center; gap:.5rem; font-variant-numeric:tabular-nums;}
.s223 .s223-origin-date strong {font-size:.98rem; font-weight:650; color:#52657a; white-space:nowrap;}
.s223 .s223-origin-date button {display:grid; place-items:center; width:30px; height:30px;
    border:0; border-radius:7px; background:transparent; color:#75889e;}
.s223 .s223-origin-date button:hover {background:#e6edf5; color:#205a98;}
@media(max-width:575.98px) {
    .s223 .s223-origin-row {padding:.75rem .85rem;}
}

/* Договор на ходу: компактное поле прямо после рассчитанных этапов. */
.s223 .s223-inline-contract {
    display:flex; align-items:flex-start; gap:.9rem;
    margin-top:1rem; padding:1rem 1.05rem;
    background:#f8fafc; border:1px solid #dfe6ed; border-radius:12px;
}
.s223 .s223-inline-contract-icon {
    display:grid; place-items:center; flex:0 0 40px;
    width:40px; height:40px; background:#e9f0f8; color:#2d6eb6;
    border-radius:10px; font-size:1.18rem;
}
.s223 .s223-inline-contract-body {display:flex; flex:1; min-width:0; flex-wrap:wrap; gap:.85rem 1.2rem; align-items:center; justify-content:space-between;}
.s223 .s223-inline-contract-text {display:grid; gap:.22rem; flex:1 1 280px; min-width:0;}
.s223 .s223-inline-contract-text strong {color:#294765; font-size:1rem; line-height:1.45;}
.s223 .s223-inline-contract-text span {color:#60758b; font-size:.9rem; line-height:1.5;}
.s223 .s223-inline-contract-form {display:flex; gap:.6rem; flex:0 1 auto; flex-wrap:wrap; align-items:center;}
.s223 .s223-inline-contract-form .form-control {
    width:185px; min-width:0; min-height:42px; color:#294765; background:#fff;
    border:1px solid #d3dfea; border-radius:8px; font-size:.96rem;
}
.s223 .s223-inline-contract-form .form-control:focus {border-color:#75a7e5; box-shadow:0 0 0 .2rem rgba(41,115,204,.12);}
.s223 .s223-inline-contract-submit {display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:42px; border-radius:8px; white-space:nowrap; font-size:.92rem; font-weight:650;}
.s223 .s223-inline-contract-submit:hover,.s223 .s223-inline-contract-submit:focus-visible {color:#fff; background:#1e5eaa; border-color:#1e5eaa;}
.s223 .s223-inline-contract-submit:hover span,.s223 .s223-inline-contract-submit:hover i {color:inherit;}
@media(max-width:575.98px) {
    .s223 .s223-inline-contract {gap:.65rem; padding:.85rem;}
    .s223 .s223-inline-contract-icon {width:34px; height:34px; flex-basis:34px;}
    .s223 .s223-inline-contract-form {width:100%;}
    .s223 .s223-inline-contract-form .form-control {flex:1 1 155px; width:auto;}
    .s223 .s223-inline-contract-submit {flex:1 1 170px;}
}


/* v.2.13 — две основные карточки + компактная классификация способа по Положению. */
.s223 .s223-options-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.s223 .s223-custom-type-picker {
    padding:.85rem 1rem; background:#f8fafc; border:1px solid #e1e8f0;
    border-radius:10px;
}
.s223 .s223-custom-type-picker .form-label { margin-bottom:.45rem; }
.s223 .s223-custom-type-picker .form-select { max-width:440px; }
.s223 .s223-custom-type-picker .form-text { margin-top:.45rem; }
/* Быстрый перенос уже рассчитанной даты в редактируемое поле договора. */
.s223 .s223-inline-contract-input { display:flex; flex-direction:column; gap:.36rem; min-width:0; }
.s223 .s223-inline-contract-form { align-items:flex-start; }
.s223 .s223-inline-contract-submit { margin-top:0; }
.s223 .s223-inline-protocol-quick {
    align-self:flex-start; display:inline-flex; align-items:center; gap:.35rem;
    max-width:100%; border:1px solid #dce6f1; border-radius:7px;
    padding:.3rem .55rem; background:#fff; color:#346392;
    font-size:.78rem; line-height:1.4; text-align:left; cursor:pointer;
}
.s223 .s223-inline-protocol-quick:hover { border-color:#8bb7e8; background:#f1f7ff; color:#185a9e; }
.s223 .s223-inline-protocol-quick:focus-visible { outline:2px solid #337ecf; outline-offset:2px; }
@media(max-width:575.98px) {
    .s223 .s223-options-2 { grid-template-columns:1fr; }
    .s223 .s223-inline-contract-input { flex:1 1 170px; }
    .s223 .s223-inline-contract-input .form-control { width:100%; }
    .s223 .s223-inline-protocol-quick { overflow-wrap:anywhere; }
}

/* v.2.15 — единая рабочая область вместо разрозненных карточек.
   Структура и цвета согласованы с формой результата. Все правила локальны для .s223. */
.s223 {
    --s223-line: #dce5ef;
    --s223-ink: #263b53;
    --s223-blue: #226bbd;
    color: var(--s223-ink);
}
.s223 .s223-hero-content .hero-title { color:#192f48; }
.s223 .s223-hero-content .hero-text { color:#425a73; }

/* Один контейнер для названия калькуляции, двух шагов и действия. */
.s223 .s223-form-shell {
    background:#fff;
    border:1px solid #d9e4ef;
    border-radius:18px;
    box-shadow:0 11px 30px rgba(37,65,100,.065);
    overflow:hidden;
}
.s223 .s223-form-heading {
    display:flex;
    align-items:center;
    gap:.95rem;
    margin:0;
    padding:1.3rem 1.6rem 1.2rem;
    border-bottom:1px solid #e5ecf3;
    background:#fff;
}
.s223 .s223-form-heading-icon {
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border:1px solid #d8e8fa;
    border-radius:12px;
    background:#edf5ff;
    color:#2472c3;
    font-size:1.28rem;
}
.s223 .s223-form-heading h2 {
    margin:0;
    color:#1d3858;
    font-size:1.48rem;
    font-weight:750;
    line-height:1.3;
    letter-spacing:-.02em;
}
.s223 .s223-form-heading p {
    margin: .2rem 0 0;
    color:#566d83;
    font-size:.92rem;
    line-height:1.55;
}
.s223 .s223-form-shell .s223-panel {
    margin:0 !important;
    padding:1.3rem 1.65rem;
    border:0;
    border-bottom:1px solid #e5ecf3;
    border-radius:0;
    box-shadow:none;
    background:#fff;
}
.s223 .s223-form-shell .s223-panel-head {
    margin-bottom:1.05rem;
    gap:.85rem;
}
.s223 .s223-form-shell .s223-panel-head h3 {
    color:#243b55;
    font-size:1.08rem;
    font-weight:740;
}
.s223 .s223-form-shell .s223-panel-head p {
    color:#60768c !important;
    font-size:.9rem !important;
    line-height:1.5;
}
.s223 .s223-form-shell .s223-step {
    flex-basis:34px;
    width:34px;
    height:34px;
    border:1px solid #cfe2fa;
    border-radius:10px;
    background:#ecf4ff;
    color:#2469b7;
    font-size:.94rem;
    font-weight:750;
}
/* Контроль выбора: активный вариант выделен цветом, остальные остаются нейтральными. */
.s223 .s223-option > span {
    min-height:78px;
    padding:.85rem 2.7rem .85rem 1rem;
    border:1px solid #d9e4ee;
    border-radius:11px;
    background:#fff;
    box-shadow:none;
}
.s223 .s223-option strong {
    color:#28415d;
    font-size:1rem;
    line-height:1.4;
}
.s223 .s223-option small {
    color:#576f87;
    font-size:.9rem;
    line-height:1.45;
}
.s223 .s223-option input:checked + span {
    background:#eff6ff;
    border-color:#6aa7ed;
    box-shadow:inset 0 0 0 1px #78b0f0;
}
.s223 .s223-option:hover > span { border-color:#91b9e7; background:#f8fbff; }
.s223 .s223-option input:checked + span::before { border-color:#2574c9; }

/* Вместо отдельной цветной карточки — горизонтальный ряд с выбором справа. */
.s223 .s223-method-picker,
.s223 .s223-custom-type-picker {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(220px,1fr);
    gap:.8rem 1.25rem;
    align-items:center;
    margin-top:.25rem;
    padding:.95rem 1.1rem;
    border:1px solid #e0e8f1;
    border-left:3px solid #3783d0;
    border-radius:10px;
    background:#f8fbfe;
    box-shadow:none;
}
.s223 .s223-picker-description { min-width:0; }
.s223 .s223-method-picker .form-label,
.s223 .s223-custom-type-picker .form-label {
    display:flex;
    align-items:center;
    gap:.45rem;
    margin:0 0 .2rem;
    color:#2b5074!important;
    font-size:.95rem;
    font-weight:700!important;
}
.s223 .s223-method-picker .form-text,
.s223 .s223-custom-type-picker .form-text { margin:0; color:#627890; font-size:.86rem; }
.s223 .s223-custom-type-picker .form-select { max-width:none; }
.s223 #srok223-v2-form .s223-method-picker .form-select,
.s223 #srok223-v2-form .s223-custom-type-picker .form-select {
    width:100%;
    min-height:44px;
    background-color:#fff;
    border:1px solid #c6d6e6;
    font-weight:650;
    color:#1f4367;
}

/* Белые поля, тёмный текст и сдержанные пояснения. */
.s223 #srok223-v2-form .form-label { font-size:.94rem; color:#2d4966; font-weight:650; }
.s223 #srok223-v2-form .form-text { color:#596f85; font-size:.88rem; line-height:1.5; }
.s223 #srok223-v2-form .s223-optional { color:#687d92!important; }
.s223 #srok223-v2-form .form-control,
.s223 #srok223-v2-form .form-select {
    min-height:44px;
    border:1px solid #cbd9e8;
    border-radius:9px;
    background:#fff;
    color:#223d5a;
    font-size:.96rem;
}
.s223 #srok223-v2-form .form-control::placeholder { color:#8293a5; opacity:1; }
.s223 #srok223-v2-form .form-control:focus,
.s223 #srok223-v2-form .form-select:focus {
    border-color:#74abeb;
    box-shadow:0 0 0 .2rem rgba(49,115,193,.11);
}
.s223 .s223-main-dates > [class*="col-"] { max-width:560px; }
.s223 .s223-date-quick {
    border:1px solid #d1dff0;
    border-radius:8px;
    padding:.32rem .65rem;
    background:#fff;
    color:#2c68ac;
    font-size:.84rem;
}
.s223 .s223-date-quick:hover { background:#f0f7ff; border-color:#a4c9f0; }
.s223 .s223-note {
    background:#fff;
    border:0;
    border-top:1px solid #e6edf4;
    border-radius:0;
    padding:.85rem .15rem .12rem;
    color:#526980;
    font-size:.9rem;
    line-height:1.5;
}
.s223 .s223-note i { color:#3e84cc; margin-top:.1rem; }
.s223 .s223-note a { color:#1b68b9; text-decoration:underline; text-underline-offset:2px; }
.s223 .s223-note a:hover { color:#134d89; }
.s223 .s223-change-section {
    margin-top:1.1rem;
    padding:.85rem 1rem;
    border:1px solid #e1e9f2;
    border-radius:10px;
    background:#fafcfe;
}
.s223 .s223-change-toggle .form-check-label { color:#304a65; }

/* Раскрываемые дополнительные этапы выглядят продолжением формы. */
.s223 .s223-form-shell .s223-expand {
    padding:0;
    background:#fff;
}
.s223 .s223-form-shell .s223-expand > summary {
    padding:1.1rem 1.65rem;
    background:#fff;
}
.s223 .s223-form-shell .s223-expand > summary:hover { background:#f7faff; }
.s223 .s223-expand-icon { border-radius:10px; background:#edf5ff; color:#2b77c8; }
.s223 .s223-expand > summary strong { color:#244363; }
.s223 .s223-expand > summary small { color:#5b7189; }
.s223 .s223-expand-body { padding:1.1rem 1.65rem 1.4rem; background:#fff; }
.s223 .s223-stage-heading { background:#f5f8fc; color:#506981; }
.s223 .s223-stage:nth-child(odd) { background:#fbfcfe; }
.s223 .s223-stage-section { background:#f7faff; }
/* Кнопка — внизу единого контейнера, отделена лёгкой границей. */
.s223 .s223-form-shell .s223-form-actions {
    margin:0!important;
    padding:1.1rem 1.65rem;
    border:0;
    border-radius:0;
    background:#f8fbff;
    box-shadow:none;
}
.s223 .s223-form-actions #s223-submit {
    min-height:44px;
    border-color:#236dbf;
    background:#236dbf;
    border-radius:9px;
    font-weight:650;
    box-shadow:0 4px 12px rgba(35,109,191,.16);
}
.s223 .s223-form-actions #s223-submit:hover { background:#175aa3; border-color:#175aa3; }

/* Результат — такой же белый контейнер и контрастность текста. */
.s223 .s223-results {
    background:#fff;
    border:1px solid #d9e4ef;
    border-radius:18px;
    box-shadow:0 11px 30px rgba(37,65,100,.065);
}
.s223 .s223-results-heading h2 { color:#1d3858; font-size:1.48rem; }
.s223 .s223-results-subtitle { color:#5d7289; }
.s223 .s223-timeline-title { color:#23405e; }
.s223 .s223-source,
.s223 .s223-timeline-note { color:#536e87; }
.s223 .s223-timeline-content { background:#fff; border-color:#dce7f2; box-shadow:0 4px 12px rgba(35,61,90,.032); }
.s223 .s223-inline-contract-text span,
.s223 .s223-contract-strip-source,
.s223 .s223-afterflow { color:#60758a; }
.s223 .s223-disclaimer { background:#f9fbfe; color:#526c85; }

@media(max-width:767.98px) {
    .s223 .s223-method-picker,
    .s223 .s223-custom-type-picker { grid-template-columns:1fr; }
    .s223 .s223-form-heading { padding:1.1rem 1rem; }
    .s223 .s223-form-shell .s223-panel { padding:1.1rem 1rem; }
    .s223 .s223-form-shell .s223-expand > summary { padding:1rem; }
    .s223 .s223-expand-body { padding:1rem; }
    .s223 .s223-form-shell .s223-form-actions { padding:1rem; }
}
@media(max-width:575.98px) {
    .s223 .s223-form-shell { border-radius:14px; }
    .s223 .s223-form-heading { align-items:flex-start; gap:.75rem; }
    .s223 .s223-form-heading h2 { font-size:1.32rem; }
    .s223 .s223-form-heading-icon { width:38px; height:38px; flex-basis:38px; }
    .s223 .s223-option > span { min-height:0; }
    .s223 .s223-method-picker,
    .s223 .s223-custom-type-picker { padding:.85rem; }
}

/* v.2.17: при изменении извещения прежний срок и дата изменений — справочные.
   Главный рассчитанный срок «Окончание подачи заявок» остаётся контрастным. */
.s223 .s223-timeline-item--reference .s223-timeline-content {
    background: #f5f7f9;
    border-color: #e0e5eb;
    box-shadow: none;
}
.s223 .s223-timeline-item--reference .s223-timeline-marker {
    background: #e9edf2;
    color: #64768a;
    border-color: #dce3ea;
}
.s223 .s223-timeline-item--reference .s223-timeline-icon {
    background: #e9edf2;
    color: #677b90;
}
.s223 .s223-timeline-item--reference .s223-timeline-title {
    color: #516378;
}
.s223 .s223-timeline-item--reference .s223-source,
.s223 .s223-timeline-item--reference .s223-timeline-note,
.s223 .s223-timeline-item--reference .s223-timeline-right strong {
    color: #687a8d;
}
.s223 .s223-timeline-item--reference .s223-timeline-right button {
    color: #8191a3;
}
.s223 .s223-timeline-item--reference .s223-timeline-right button:hover {
    color: #2c6cb4;
    background: #edf3fb;
    border-color: #d6e2ee;
}
