.progress li{display:flex;align-items:center;gap:8px;font-size:.8em;color:var(--muted);cursor:pointer;position:relative;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.progress li span{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--soft);font-weight:700;font-size:13px;flex:none}
.progress li em{font-style:normal;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress li.done span{background:var(--teal);color:#fff}
.progress li.done span::after{content:""}
.progress li.cur{border-color:var(--brand2);background:var(--brand-soft);color:var(--brand)}
.progress li.cur span{background:var(--brand);color:var(--brand-ink)}
@media (max-width:600px){.progress li em{display:none}.progress li{justify-content:center}}
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
@media (max-width:960px){.calc-grid{grid-template-columns:1fr}.calc-side{order:-1}}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--sh)}
.step.plain{background:none;border:0;box-shadow:none;padding:0}
.step h2{font-size:1.4em;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 24px;font-size:.92em}
.tabs{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:12px;margin-bottom:22px}
.tabs button{flex:1;font:inherit;font-size:.88em;font-weight:600;border:0;border-radius:9px;padding:11px;background:transparent;color:var(--muted);cursor:pointer}
.tabs button.on{background:var(--card);color:var(--ink);box-shadow:var(--sh)}
.ym{display:flex;gap:14px;flex-wrap:wrap}
.ym label{display:flex;align-items:center;gap:10px}.ym input{max-width:110px}
.periods{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
.period{border:1.5px solid var(--line);border-radius:var(--r);padding:16px 14px 12px;display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;background:var(--card)}
.period.army{border-left:4px solid var(--army)}.period.credit{border-left:4px solid var(--credit)}.period.work{border-left:4px solid var(--brand2)}
.period .t{grid-column:1/-1}
.period label{font-size:.76em;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}
.period input.date{max-width:none}
.period select{font:inherit;font-size:.92em;padding:11px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);width:100%}
.period .len{grid-column:1/-1;font-size:.82em;font-weight:600;color:var(--brand2);margin-top:-4px;min-height:1em}
.period .del{position:absolute;top:6px;right:6px;border:0;background:none;color:var(--muted);font-size:1em;cursor:pointer;padding:6px 10px;border-radius:8px}
.period .del:hover{background:var(--bad-soft);color:var(--bad)}
.period .num{position:absolute;top:-10px;left:12px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:0 9px;font-size:.7em;font-weight:700;color:var(--muted)}
.row-btns{display:flex;gap:10px;flex-wrap:wrap}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:600px){.cards3{grid-template-columns:1fr}}
.cards3 button{font:inherit;text-align:left;padding:14px 16px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:2px}
.cards3 button span{font-size:.8em;color:var(--muted)}
.cards3 button.on{border-color:var(--brand2);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand2)}
.checks{display:grid;gap:8px}
.checks label{display:flex;gap:14px;align-items:flex-start;padding:13px 16px;border:1.5px solid var(--line);border-radius:var(--r);cursor:pointer;background:var(--card)}
.checks label:has(input:checked){border-color:var(--brand2);background:var(--brand-soft)}
.checks input{width:21px;height:21px;margin-top:2px;flex:none;accent-color:var(--brand)}
.checks b{display:block;font-weight:600}.checks small{color:var(--muted);font-size:.8em}
details.more{margin-top:12px;border-top:1px dashed var(--line);padding-top:12px}
details.more summary{cursor:pointer;font-weight:600;color:var(--brand2);font-size:.88em}
.slider{display:flex;align-items:center;gap:14px;margin-top:12px}
.slider input{flex:1;accent-color:var(--brand);height:28px}
.slider output{font-weight:700;min-width:56px;text-align:right}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
details .grid2{margin-top:14px}
@media (max-width:600px){.grid2{grid-template-columns:1fr}}
.nav{display:flex;justify-content:space-between;gap:12px;margin-top:16px}
.nav .btn.primary{margin-left:auto;min-width:170px}
@media (max-width:900px){.nav{position:sticky;bottom:72px;padding:10px 0;background:linear-gradient(transparent,var(--bg) 35%);z-index:5}}
.nav.static{position:static;background:none}

/* живо резюме */
.calc-side{position:sticky;top:84px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh)}
.side-card h4{margin:0 0 12px;font-size:.78em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.side-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:.88em}
.side-row:first-of-type{border-top:0}
.side-row span{color:var(--muted)}.side-row b{text-align:right}
.side-big{font-size:1.7em;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:2px 0 4px}
.side-empty{color:var(--muted);font-size:.86em}
.side-help{margin-top:12px;font-size:.78em;color:var(--muted)}
@media (max-width:960px){.side-card{padding:14px 16px}.side-card .side-row{display:none}.side-card .side-row.key{display:flex}.side-help{display:none}}

/* живо: стаж */
.live{margin-top:22px;padding:16px;border-radius:var(--r);background:var(--soft)}
.live .nums{display:flex;gap:22px;flex-wrap:wrap}
.live .k{font-size:.72em;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.live .v{font-size:1.2em;font-weight:700}

/* времева линия */
.tl{margin-top:14px}
.tl-bar{position:relative;height:28px;border-radius:8px;background:repeating-linear-gradient(45deg,var(--line) 0 5px,transparent 5px 10px);overflow:hidden;border:1px solid var(--line)}
.tl-seg{position:absolute;top:0;bottom:0;background:var(--brand2)}
.tl-seg.army{background:var(--army)}.tl-seg.credit{background:var(--credit)}
.tl-mark{position:absolute;top:-2px;bottom:-2px;width:3px;background:var(--teal);border-radius:2px;box-shadow:0 0 0 2px var(--card)}
.tl-axis{display:flex;justify-content:space-between;font-size:.72em;color:var(--muted);margin-top:4px}
.tl-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.74em;color:var(--muted);margin-top:8px}
.tl-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:var(--brand2)}
.tl-legend i.army{background:var(--army)}.tl-legend i.credit{background:var(--credit)}.tl-legend i.gap{background:repeating-linear-gradient(45deg,var(--line) 0 3px,transparent 3px 6px);border:1px solid var(--line)}.tl-legend i.mark{background:var(--teal)}

/* ---------- резултати ---------- */
.r-hero{border-radius:var(--r-lg);padding:28px;background:linear-gradient(135deg,var(--brand),#0d2d4c);color:#fff;margin-bottom:16px;position:relative;overflow:hidden}
html[data-theme="dark"] .r-hero{background:linear-gradient(135deg,#17324f,#0f2033)}
.r-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(103,212,193,.25),transparent 70%)}
.r-hero.bad{background:linear-gradient(135deg,#7a1f17,#4d130e)}
.r-hero .pill{background:rgba(255,255,255,.14);color:#fff}
.r-hero h2{font-size:1.05em;margin:12px 0 0;font-weight:500;color:rgba(255,255,255,.85)}
.r-date{font-size:clamp(2.3em,7vw,3.3em);font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:4px 0}
.r-count{font-weight:600;color:#7fe0cd}
.r-hero p{margin:10px 0 0;color:rgba(255,255,255,.88);font-size:.92em;max-width:640px}
.r-hero p b{color:#fff}
.r-hero .btn{background:#fff;color:var(--brand);border-color:#fff}
.r-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;position:relative;z-index:1}
.r-actions .btn{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.25);box-shadow:none}
.r-actions .btn:hover{background:rgba(255,255,255,.2)}
.r-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media (max-width:700px){.r-grid{grid-template-columns:1fr}}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh);margin-bottom:16px}
.r-grid .box{margin:0}
.box h3{font-size:1.02em;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.box .big{font-size:2em;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.box .small,.small{font-size:.82em;color:var(--muted)}
.note{border-radius:12px;padding:12px 14px;font-size:.86em;margin-top:12px;border:1px solid transparent}
.note.info{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand2) 18%,transparent)}
.note.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 18%,transparent)}
.note.ok{background:var(--ok-soft)}
.calc{margin-top:12px;font-size:.8em;color:var(--muted)}
.calc summary{cursor:pointer;color:var(--brand2);font-weight:600}
.meter{height:8px;border-radius:999px;background:var(--soft);overflow:hidden;margin:4px 0 6px}
.meter i{display:block;height:100%;background:var(--teal);border-radius:999px;transition:width .3s}
ul.docs{list-style:none;padding:0;margin:8px 0 0}
ul.docs li{border-top:1px solid var(--line)}
ul.docs label{display:flex;gap:14px;padding:12px 0;cursor:pointer;align-items:flex-start}
ul.docs input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--teal)}
ul.docs b{display:block;font-weight:600}
ul.docs span{font-size:.83em;color:var(--muted)}
ul.docs li:has(input:checked) b{text-decoration:line-through;color:var(--muted)}
ul.docs a{font-size:.8em;font-weight:600}
ol.steps{list-style:none;padding:0;margin:0;counter-reset:s}
ol.steps li{position:relative;padding:0 0 18px 46px;counter-increment:s}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.82em}
ol.steps li::after{content:"";position:absolute;left:14px;top:34px;bottom:4px;width:2px;background:var(--line)}
ol.steps li:last-child::after{display:none}
ol.steps .when{display:inline-block;font-size:.7em;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.05em}
ol.steps p{margin:2px 0 0}
/* сценарии */
.scen{display:grid;gap:8px;margin-top:6px}
.scen-row{display:grid;grid-template-columns:120px 1fr 74px;gap:12px;align-items:center;font-size:.86em}