@font-face{font-family:Golos;font-weight:400;font-display:swap;src:url(/fonts/golos-text-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Golos;font-weight:600;font-display:swap;src:url(/fonts/golos-text-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Golos;font-weight:400;font-display:swap;src:url(/fonts/golos-text-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:Golos;font-weight:600;font-display:swap;src:url(/fonts/golos-text-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
:root{--fon:#2B2520;--plita:#362F29;--liniya:#51473D;--truba:#8A7C6C;--tekst:#F1EAE0;--tih:#BDB0A0;--gaz:#E9A93C;--stop:#EE7B66;--hod:#9FBE8E}
:root{color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fon);color:var(--tekst);font:400 16px/1.45 Golos,system-ui,sans-serif;font-variant-numeric:tabular-nums}
h1,h2,h3,p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--gaz);outline-offset:2px}
.stranica{max-width:1180px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom))}
.zagruzka{color:var(--tih);padding:40px 0}

/* шапка */
.shapka{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.shapka h1{font-size:28px;font-weight:600;letter-spacing:-.01em}
.vyhod{color:var(--tih);font-size:14px;min-height:44px}
.puls{display:flex;flex-wrap:wrap;gap:2px 16px;color:var(--tih);font-size:14px;margin-top:2px}
.puls .rabota{color:var(--hod)}
.puls .beda{color:var(--stop);font-weight:600}

/* решения */
.reshenie{margin-top:18px;border-left:4px solid var(--gaz);padding:2px 0 2px 14px}
.reshenie h2{font-size:18px;font-weight:600;color:var(--gaz)}
.reshenie ul{list-style:none;margin:8px 0 0;padding:0}
.reshenie li+li{margin-top:12px}
.reshenie b{font-weight:600}
.reshenie.pusto{border-left-color:var(--liniya);color:var(--tih);font-size:15px}

/* линия стадий: сквозной элемент страницы */
.magistral{margin:24px 0 8px}
.linia{position:relative;display:grid;grid-template-columns:repeat(9,1fr)}
.linia::before{content:"";position:absolute;left:5.5%;right:5.5%;top:21px;height:4px;background:var(--truba)}
.uzel{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:44px}
.uzel i{display:flex;align-items:center;justify-content:center;width:30px;height:30px;margin:8px 0;border-radius:50%;background:var(--fon);border:3px solid var(--truba);font-style:normal;font-size:14px;font-weight:600;color:var(--tih)}
.uzel.est i{width:46px;height:46px;margin:0;background:var(--truba);color:var(--fon);font-size:19px}
.uzel.stoit i{border-color:var(--stop);box-shadow:0 0 0 2px var(--stop)}
.uzel.vybran i{outline:2px solid var(--tekst);outline-offset:2px}
.uzel span{font-size:12px;line-height:1.2;color:var(--tih);text-align:center;overflow-wrap:anywhere}
.uzel.est span{color:var(--tekst)}
.podpis{margin-top:10px;font-size:14px;color:var(--tih);min-height:20px}

/* разметка */
.kolonki{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;margin-top:14px}
@media(min-width:960px){.kolonki{grid-template-columns:minmax(0,1fr) 340px;gap:44px}.bok{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow:auto}}
@media(max-width:560px){.uzel span{display:none}.uzel i{width:24px;height:24px;margin:6px 0;font-size:12px;border-width:2px}.uzel.est i{width:36px;height:36px;margin:0;font-size:16px}.linia::before{top:16px}.uzel{min-height:36px}}

.filtry{display:flex;gap:6px;overflow-x:auto;margin:0 -16px 6px;padding:2px 16px;scrollbar-width:none}
.filtry button{flex:none;padding:9px 13px;min-height:40px;border-radius:20px;color:var(--tih);font-size:15px;border:1px solid var(--liniya)}
.filtry button[aria-pressed=true]{background:var(--tekst);border-color:var(--tekst);color:var(--fon);font-weight:600}

/* задачи */
.obekt{margin-top:22px}
.obekt h2{font-size:17px;font-weight:600;padding-bottom:6px;border-bottom:1px solid var(--liniya)}
.zadacha{border-bottom:1px solid var(--liniya)}
.zadacha>summary{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 10px;padding:12px 0;cursor:pointer;list-style:none}
summary{list-style:none}
summary::-webkit-details-marker{display:none}
.klapan{justify-self:start;align-self:start;min-width:36px;height:36px;padding:0 5px;border-radius:18px;border:2px solid var(--truba);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;white-space:nowrap}
.zadacha.molchit .klapan{border-color:var(--stop);color:var(--stop)}
.zadacha.vopros .klapan{border-color:var(--gaz);color:var(--gaz)}
.zadacha h3{font-size:16px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.etap{color:var(--tekst);font-size:15px;overflow-wrap:anywhere}
.dalshe,.meta{color:var(--tih);font-size:14px;overflow-wrap:anywhere}
.zamolk{color:var(--stop);font-size:14px;overflow-wrap:anywhere}
.podrobno{padding:0 0 16px 54px;font-size:15px}
.podrobno h4{margin:14px 0 4px;font-size:14px;font-weight:600;color:var(--tih)}
.poruchenie{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--tih);max-height:240px;overflow:auto}
/* закрытая карточка короткая, полный текст при открытии */
.zadacha:not([open])>summary .etap,.zadacha:not([open])>summary .dalshe,.zadacha:not([open])>summary .meta{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.zadacha:not([open])>summary .etap{-webkit-line-clamp:3}
/* процессы внутри задачи: тише и мельче */
.process{border-left:2px solid var(--liniya);margin-top:8px;padding-left:12px}
.process.molchit{border-left-color:var(--stop)}
.process summary{cursor:pointer;padding:4px 0}
.process h4{margin:0;color:var(--tekst);font-size:15px;font-weight:600;overflow-wrap:anywhere}
.process .etap{color:var(--tih);font-size:14px}
.podrobno-processa{padding:4px 0 10px;font-size:14px}
.podrobno-processa h5{margin:10px 0 3px;font-size:13px;font-weight:600;color:var(--tih)}
.bez-zadachi h2{color:var(--gaz);border-bottom-color:var(--gaz)}
.kod{color:var(--tih);font-size:13px}
@media(max-width:560px){.podrobno{padding-left:0}}

/* журнал: линия с отводами */
.sobytiya{list-style:none;margin:0;padding:0}
.sobytiya li{position:relative;padding:0 0 12px 18px;border-left:2px solid var(--liniya);margin-left:4px;overflow-wrap:anywhere}
.sobytiya li:last-child{border-left-color:transparent}
.sobytiya li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--truba)}
.sobytiya li.polucheno::before{background:var(--hod)}
.sobytiya li.otpravleno::before{background:var(--fon);border:2px solid var(--tekst)}
.sobytiya .kogda{display:block;color:var(--tih);font-size:13px}
.sobytiya .ssylka{display:block;color:var(--tih);font-size:13px}

/* боковая */
.bok h2{font-size:17px;font-weight:600;margin-bottom:10px}
.bok section+section{margin-top:26px}
.bok .sobytiya{font-size:14px}
.bez li{padding:6px 0;border-bottom:1px solid var(--liniya);font-size:14px;overflow-wrap:anywhere}
.bez{list-style:none;margin:0;padding:0}
.bez span{display:block;color:var(--tih);font-size:13px}
.pusto-spisok{color:var(--tih);padding:18px 0}

/* вход */
.vhod{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.vhod form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:8px}
.vhod h1{font-size:28px;font-weight:600;margin-bottom:14px}
.vhod label{color:var(--tih);font-size:15px}
.vhod input{font:inherit;font-size:17px;padding:12px;min-height:48px;background:var(--plita);border:1px solid var(--truba);border-radius:6px;color:var(--tekst)}
.oshibka{color:var(--stop);font-size:15px}
.vhod button{margin-top:8px;min-height:48px;background:var(--gaz);color:var(--fon);font-weight:600;border-radius:6px}
@media(prefers-reduced-motion:no-preference){.zadacha[open]>.podrobno{animation:otkr .16s ease-out}@keyframes otkr{from{opacity:0;transform:translateY(-4px)}}}
