/* Оформление — из превью (server/prevyu/index.html), чтобы приложение выглядело как утверждённые экраны.
   Обновлять копированием, правки самого приложения — в app.css. */

:root{
  --fon:#E7E8E4; --ekran:#F1F2EF; --kartochka:#FFFFFF; --liniya:#DFE1DC;
  --tekst:#16191B; --tusk:#565C61; --akcent:#C2410C; --akcent-tusk:#FBE7DD;
  --ok:#15803D; --ok-fon:#DCF2E3; --ok-tekst:#14532D;
  --zhdyot:#F0B44C; --zhdyot-fon:#FDF0D5; --zhdyot-tekst:#734505;
  --vozvrat-fon:#FDE2DC; --vozvrat-tekst:#9A2A0F;
  --pravka:#2457D6;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fon);color:var(--tekst);font-family:'Golos Text',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}

/* --- раскладка превью --- */
.stol{min-height:100vh;display:flex;gap:28px;justify-content:center;align-items:flex-start;padding:24px 16px 40px;flex-wrap:wrap}
.levo{width:300px;display:flex;flex-direction:column;gap:14px}
.levo h1{margin:0;font-size:26px;letter-spacing:-.01em}
.levo p{margin:0;color:var(--tusk);line-height:1.45;font-size:15px}
.karta{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--liniya);border-radius:14px;padding:6px}
.karta button{all:unset;cursor:pointer;padding:10px 12px;border-radius:10px;font-size:15px;display:flex;justify-content:space-between;gap:8px}
.karta button:hover{background:var(--ekran)}
.karta button[aria-current="true"]{background:var(--akcent-tusk);color:var(--vozvrat-tekst);font-weight:600}
.karta .skolko{font-size:12px;color:#fff;background:var(--pravka);border-radius:999px;padding:1px 8px;align-self:center}
.telefon{width:390px;height:844px;border-radius:44px;background:#0F1112;padding:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);flex:none}
.ekran-ramka{width:100%;height:100%;border-radius:36px;overflow:hidden;background:var(--ekran);position:relative}
.pravo{width:340px;display:flex;flex-direction:column;gap:12px}
@media (max-width:820px){
  .stol{padding:0;gap:0}
  .levo,.pravo{width:100%;position:static;padding:16px}
  .telefon{width:100%;height:100dvh;border-radius:0;padding:0;box-shadow:none}
  .ekran-ramka{border-radius:0}
  .levo{order:2}.pravo{order:3}
}

/* --- экраны приложения --- */
.ekran{position:absolute;inset:0;display:none;flex-direction:column}
.ekran.vidno{display:flex}
.shapka{display:flex;align-items:center;gap:8px;padding:14px 12px 12px 16px;background:#fff;border-bottom:1px solid var(--liniya);min-height:64px}
.shapka h2{margin:0;font-size:20px;font-weight:600;flex:1;line-height:1.2}
.shapka .pod{display:block;font-size:13px;color:var(--tusk);font-weight:400}
.nazad{color:var(--tekst);width:44px;height:44px;margin-left:-8px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:0;background:none;cursor:pointer}
.nazad:hover{background:var(--ekran)}
.telo{flex:1;overflow:auto;padding:14px 14px 20px;display:flex;flex-direction:column;gap:12px;position:relative}
.niz{padding:12px 14px 16px;background:#fff;border-top:1px solid var(--liniya);display:flex;flex-direction:column;gap:8px}
.kartochka{background:var(--kartochka);border:1px solid var(--liniya);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
a.kartochka{color:inherit;text-decoration:none;cursor:pointer}
a.kartochka:hover{border-color:#B9BDB6}
.tusk{color:var(--tusk);font-size:14px}
.melko{font-size:13px;color:var(--tusk)}
.zagolovok-razdela{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tusk);margin:6px 2px 0}
.knopka{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 18px;border-radius:14px;border:0;background:var(--akcent-knopka);color:#fff;font-weight:600;font-size:17px;cursor:pointer;text-decoration:none}
.knopka:hover{background:var(--akcent-nazhat)}
.knopka.vtor{background:#fff;color:var(--tekst);border:1.5px solid #C9CCC6}
.knopka.vtor:hover{background:var(--ekran)}
.knopka.zel{background:var(--ok)}
.knopka.malaya{min-height:44px;font-size:15px;padding:0 14px}
.ryad{display:flex;gap:8px;align-items:center}
.ryad.mezhdu{justify-content:space-between}
.polosa{height:8px;border-radius:4px;background:#E4E6E1;overflow:hidden;display:flex}
.polosa.tolsto{height:12px;border-radius:6px}
.polosa i{display:block;height:100%}
.polosa .p{background:var(--ok)}.polosa .z{background:var(--zhdyot)}.polosa .s{background:var(--akcent-knopka)}
.metka{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}
.metka.ok{background:var(--ok-fon);color:var(--ok-tekst)}
.metka.zhd{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.metka.voz{background:var(--vozvrat-fon);color:var(--vozvrat-tekst)}
.metka.ser{background:#ECEDEA;color:#3F4448}
.kto-filtr{display:flex;flex-direction:column;gap:6px}
.kto-filtr .ryad{flex-wrap:wrap;gap:6px}
.kto-filtr .melko{min-width:76px}
button.metka.kto{border:1.5px solid #D6D8D3;background:#fff;color:var(--tekst);font-family:inherit;font-size:14px;padding:5px 12px;cursor:pointer}
button.metka.kto[aria-pressed="true"]{background:var(--tekst);border-color:var(--tekst);color:#fff}
[data-skryt-kto]{display:none !important}
.legenda{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--tusk)}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda b{width:10px;height:10px;border-radius:3px;display:inline-block}
.bolshoe{font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1}
.vkladki{display:flex;background:#fff;border-bottom:1px solid var(--liniya)}
.vkladki a{flex:1;text-align:center;padding:13px 0 11px;color:var(--tusk);text-decoration:none;font-weight:500;border-bottom:3px solid transparent;cursor:pointer}
.vkladki a.on{color:var(--tekst);border-color:var(--akcent)}
.nav{display:flex;background:#fff;border-top:1px solid var(--liniya)}
.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 12px;font-size:12px;color:var(--tusk);text-decoration:none;cursor:pointer}
.nav a.on{color:var(--akcent);font-weight:600}
.nebo{display:flex;gap:10px;align-items:flex-start;background:var(--zhdyot-fon);color:var(--zhdyot-tekst);border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.35}
.foto-setka{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.foto{aspect-ratio:1;border-radius:10px;position:relative;overflow:hidden;background:#C9CDC6}
.foto.f1{background:linear-gradient(160deg,#9AA39A 0 40%,#7E877F 40% 100%)}
.foto.f2{background:linear-gradient(200deg,#B7B2A6 0 55%,#8F8A7E 55% 100%)}
.foto.f3{background:linear-gradient(120deg,#A3ABB3 0 35%,#6F7882 35% 100%)}
.foto.f4{background:linear-gradient(180deg,#C4BBAA 0 60%,#9C9384 60% 100%)}
.foto .znak{position:absolute;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:rgba(15,17,18,.75);color:#fff;display:flex;align-items:center;justify-content:center}
.foto.snyat{background:#fff;border:1.5px dashed #AEB2AB;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13px;color:var(--tusk);cursor:pointer}
.stroka{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #EDEEEB}
.stroka:first-child{border-top:0;padding-top:0}
.stroka .im{flex:1;min-width:0}
.stroka .im b{display:block;font-weight:500;font-size:15px;line-height:1.3}
.telo > *{flex-shrink:0}
.kolvo{display:flex;align-items:center;border:1.5px solid #C9CCC6;border-radius:12px;overflow:hidden}
.kolvo input{width:56px;border:0;text-align:center;padding:9px 0;font-weight:600;font-variant-numeric:tabular-nums;background:#fff}
.kolvo span{padding:0 10px 0 2px;color:var(--tusk);font-size:14px}
.pole{width:100%;border:1.5px solid #C9CCC6;border-radius:12px;padding:12px;background:#fff;font-size:16px;line-height:1.4;resize:vertical}
.pole:focus,.kolvo:focus-within{outline:2px solid var(--akcent);outline-offset:1px}
.zapis{width:84px;height:84px;border-radius:50%;background:var(--akcent-knopka);color:#fff;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 8px var(--akcent-tusk)}
.zapis.idyot{animation:pulse 1.2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 16px var(--akcent-tusk)}}
.volna{display:flex;align-items:center;gap:2px;height:28px;flex:1}
.volna i{display:block;width:3px;border-radius:2px;background:#9BA09A}
.volna.igr i:nth-child(-n+12){background:var(--akcent-knopka)}
.igrat{width:44px;height:44px;border-radius:50%;border:0;background:var(--tekst);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.ii-znak{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#5B3FC4;background:#ECE7FD;padding:2px 8px;border-radius:999px}
details summary{cursor:pointer;color:var(--tusk);font-size:14px}
.chel{display:flex;gap:12px;align-items:center}
.ava{width:44px;height:44px;border-radius:50%;background:#DCDFD8;display:flex;align-items:center;justify-content:center;font-weight:600;flex:none}
a.chel{color:inherit;text-decoration:none;cursor:pointer}
.kod{font-size:28px;font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.vhod-telo{flex:1;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:28px}
.logo{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:700;letter-spacing:-.02em}
.logo .kv{width:52px;height:52px;border-radius:14px;background:var(--akcent-knopka);color:#fff;display:flex;align-items:center;justify-content:center}
.vvod-koda{width:100%;font-size:28px;font-weight:600;letter-spacing:.12em;text-align:center;padding:16px;border:1.5px solid #C9CCC6;border-radius:14px;background:#fff;text-transform:uppercase}
.vsplyv{position:absolute;left:14px;right:14px;bottom:96px;background:var(--tekst);color:#fff;padding:12px 14px;border-radius:12px;font-size:14px;display:none;z-index:5}
.vsplyv.vidno{display:block}
.vybor{display:flex;flex-wrap:wrap;gap:6px}
.ekran [hidden]{display:none !important}
.vybor button{border:1.5px solid #D6D8D3;background:#fff;color:var(--tekst);border-radius:999px;padding:7px 12px;font-size:14px;cursor:pointer;line-height:1.2;text-align:left}
.vybor button small{display:block;font-size:12px;color:var(--tusk)}
.vybor button[aria-pressed="true"]{background:var(--tekst);border-color:var(--tekst);color:#fff}
.vybor button[aria-pressed="true"] small{color:#C9CCC6}

/* --- правки --- */
.panel{background:#fff;border:1px solid var(--liniya);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}
.panel h3{margin:0;font-size:17px}
.rezhim{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;border:0;background:var(--pravka);color:#fff;font-weight:600;font-size:16px;cursor:pointer}
.rezhim[aria-pressed="true"]{background:#16191B}
.spisok-pravok{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}
.pravka{border:1px solid var(--liniya);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;cursor:pointer;background:#fff}
.pravka:hover{border-color:var(--pravka)}
.pravka.reshena{opacity:.55}
.pravka .shap{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--tusk)}
.pravka .nomer{width:22px;height:22px;border-radius:50%;background:var(--pravka);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none}
.pravka p{margin:0;font-size:14px;line-height:1.4;white-space:pre-wrap}
.pravka .otvet{font-size:13px;color:#14532D;background:var(--ok-fon);border-radius:8px;padding:6px 8px}
.ekran-ramka.pravim .ekran *{cursor:crosshair !important}
.bulavka{position:absolute;width:26px;height:26px;margin:-26px 0 0 -4px;border-radius:13px 13px 13px 2px;background:var(--pravka);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:20;box-shadow:0 2px 6px rgba(0,0,0,.3);border:2px solid #fff;cursor:pointer;padding:0}
.bulavka.reshena{background:#8B918C}
.bulavka.svet{animation:svet 1s 2}
@keyframes svet{50%{transform:scale(1.5)}}
.forma-pravki{position:absolute;z-index:30;width:280px;background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.28);padding:12px;display:flex;flex-direction:column;gap:8px}
.forma-pravki textarea{min-height:84px}
.pusto{color:var(--tusk);font-size:14px}
.plav{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.plav button{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 18px;border-radius:26px;border:0;font-weight:600;font-size:16px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.plav .gl{background:var(--pravka);color:#fff}
.plav .gl[aria-pressed="true"]{background:#16191B}
.plav .vt{background:#fff;color:var(--tekst);min-height:44px;font-size:14px}
.podskazka-pravki{position:absolute;left:12px;right:12px;top:12px;z-index:25;background:var(--pravka);color:#fff;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:500;text-align:center;display:none;pointer-events:none}
.ekran-ramka.pravim .podskazka-pravki{display:block}
.roli-vybor{display:flex;gap:2px;background:var(--ekran);border-radius:12px;padding:4px}
.roli-vybor button{all:unset;flex:1 1 auto;cursor:pointer;text-align:center;padding:10px 2px;border-radius:9px;font-size:13px;font-weight:500;color:var(--tusk)}
.roli-vybor button[aria-checked="true"]{background:#fff;color:var(--tekst);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.roli-vybor button:focus-visible{outline:2px solid var(--akcent)}
[data-skryt-rol]{display:none !important}
.st-rol{font-size:11px;color:var(--tusk);background:#ECEDEA;border-radius:999px;padding:1px 7px}
.pochemu-znak{position:absolute;top:-9px;right:-9px;z-index:15;width:22px;height:22px;border-radius:50%;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.25);font-family:inherit}
.v-tz{background:#46607A}.v-reshenie{background:#15803D}.v-otlichie{background:#C2410C}.v-probel{background:#8E1B5A}.v-vopros{background:#6D28D9}
.pochemu-spisok{display:flex;flex-direction:column;gap:8px}
.pochemu-punkt{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;border:1px solid var(--liniya);border-radius:12px;padding:10px 12px;background:#fff}
.pochemu-punkt:hover,.pochemu-punkt.akt{border-color:#46607A}
.pochemu-punkt .vid{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.pochemu-punkt .vid i{width:10px;height:10px;border-radius:50%;display:inline-block}
.pochemu-punkt .ist{font-size:12px;color:var(--tusk)}
.pochemu-punkt p{margin:0;font-size:14px;line-height:1.42}
.svetit{outline:3px solid #46607A !important;outline-offset:2px;border-radius:8px}
.legenda-pochemu{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--tusk)}
.legenda-pochemu span{display:inline-flex;align-items:center;gap:5px}
.legenda-pochemu i{width:10px;height:10px;border-radius:50%;display:inline-block}
.mikrofon{width:44px;height:44px;flex:none;border-radius:12px;border:1.5px solid #C9CCC6;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mikrofon:hover{background:var(--ekran)}
.mikrofon.idyot{background:var(--akcent-knopka);border-color:var(--akcent);color:#fff;animation:pulse 1.2s infinite}
.mikrofon.zhdyom{opacity:.6;cursor:wait}
.soobshch{display:flex;flex-direction:column;gap:6px;max-width:88%;background:var(--kartochka);border:1px solid var(--liniya);border-radius:14px;padding:9px 11px;font-size:15px;line-height:1.4}
.soobshch.moe{align-self:flex-end;background:#E3EBFD;border-color:#E3EBFD}
.soobshch .kto{font-size:12px;font-weight:600;color:var(--tusk)}
.vetka{display:flex;flex-direction:column;gap:6px;border-top:1px solid #EDEEEB;padding-top:8px}
.repl{font-size:14px;line-height:1.4;white-space:pre-wrap;border-radius:10px;padding:7px 9px;background:var(--ekran)}
.repl.klod{background:#ECE7FD}
.repl .kto{display:block;font-size:12px;font-weight:600;color:var(--tusk);margin-bottom:2px}
.repl.klod .kto{color:#5B3FC4}
.otvet-ryad{display:flex;gap:6px;align-items:flex-end}
.otvet-ryad textarea{min-height:44px;font-size:14px;padding:9px 10px}
.st{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.st.novaya{background:#E3EBFD;color:#1E3F99}.st.vopros{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.st.v_rabote{background:#ECE7FD;color:#4A2FA8;animation:migat 1.4s infinite}@keyframes migat{50%{opacity:.55}}
.obnovit{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:100;display:none;align-items:center;gap:12px;background:#16191B;color:#fff;padding:12px 14px 12px 18px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.3);font-size:15px}
.obnovit.vidno{display:flex}
.obnovit button{min-height:40px;font-size:15px}
.st.prinyata{background:#ECE7FD;color:#4A2FA8}.st.sdelano{background:var(--ok-fon);color:var(--ok-tekst)}.st.otkloneno{background:#ECEDEA;color:#3F4448}
.pravka.vopros{border-color:var(--zhdyot)}
/* --- замечания и пометки на фото (05.10) --- */
.vkladki a{flex:1 1 auto;font-size:13.5px;white-space:nowrap;padding-left:5px;padding-right:5px}
.krit{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;white-space:nowrap}
.krit i{width:11px;height:13px;display:inline-block;clip-path:polygon(0 0,100% 0,72% 50%,100% 100%,0 100%)}
.k-kr{background:#DC2626}.k-zh{background:#EAB308}.k-zl{background:#16A34A}
.vybor[data-gruppa="zam-krit"] button{display:inline-flex;align-items:center;gap:7px;padding:9px 14px}
.vybor[data-gruppa="zam-krit"] button i{width:12px;height:14px;display:inline-block;clip-path:polygon(0 0,100% 0,72% 50%,100% 100%,0 100%)}
.foto .strelki{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.foto .karandash{position:absolute;left:6px;top:6px;width:26px;height:26px;border-radius:50%;background:rgba(15,17,18,.75);color:#fff;display:flex;align-items:center;justify-content:center}
a.foto{display:block}
.red-telo{flex:1;background:#0F1112;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;gap:10px;min-height:0}
.red-foto{position:relative;width:100%;max-height:100%;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:linear-gradient(200deg,#B7B2A6 0 55%,#8F8A7E 55% 100%)}
.red-foto .truba{position:absolute;left:12%;right:8%;top:22%;height:16%;background:linear-gradient(#D5D8DC,#9AA1A8);border-radius:6px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.12)}
.red-foto .reshetka{position:absolute;left:52%;top:46%;width:26%;height:14%;background:repeating-linear-gradient(90deg,#E8E9EA 0 5px,#8E959C 5px 8px);border:3px solid #E8E9EA;border-radius:3px;transform:rotate(-9deg)}
.red-foto svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.instrumenty{display:flex;gap:6px;align-items:center;padding:10px 12px;background:#16191B;overflow-x:auto}
.instrumenty button{flex:none;min-height:44px;min-width:42px;padding:0 9px;border-radius:12px;border:1.5px solid #3A3F44;background:#22262A;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.instrumenty button[aria-pressed="true"]{background:#fff;color:#16191B;border-color:#fff}
.instrumenty .cvet{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;border-radius:50%;border:3px solid #22262A}
.instrumenty .cvet[aria-pressed="true"]{border-color:#fff;background:inherit}
.uchastniki{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--liniya);overflow-x:auto;flex:none}
.uchastniki .ava{width:32px;height:32px;font-size:13px;border:2px solid #fff;margin-left:-8px}
.uchastniki .ava:first-of-type{margin-left:0}
.uchastniki .dob{flex:none;border:1.5px dashed #AEB2AB;background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;cursor:pointer;margin-left:6px;white-space:nowrap}
.chat-dobavit{background:#fff;border-bottom:1px solid var(--liniya);padding:10px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:none}
.sistemnoe{text-align:center;font-size:13px;color:var(--tusk)}
.chat-znak{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--tusk);white-space:nowrap}
.tg-niz{display:flex;align-items:flex-end;gap:4px;padding:7px 8px 10px;background:#fff;border-top:1px solid var(--liniya);position:relative}
.tg-knopka{width:44px;height:44px;border-radius:50%;border:0;background:none;color:var(--tusk);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.tg-knopka:hover{background:var(--ekran)}
.tg-pole{flex:1;min-width:0;min-height:44px;max-height:120px;border:0;background:var(--ekran);border-radius:22px;padding:11px 16px;font-size:16px;line-height:1.35;resize:none;outline:none}
.tg-otpr{background:var(--akcent-knopka);color:#fff}
.tg-otpr:hover{background:var(--akcent-nazhat)}
.tg-vlozh{position:absolute;left:8px;right:8px;bottom:62px;background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.22);padding:14px 10px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;z-index:6}
.tg-vlozh > button:not(.pochemu-znak){all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;color:var(--tekst);padding:4px 0;border-radius:12px}
.tg-vlozh > button:not(.pochemu-znak):hover{background:var(--ekran)}
.tg-vlozh i{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-style:normal}
.soobshch .vr{align-self:flex-end;font-size:11px;color:var(--tusk);margin-top:-4px}
/* --- каркас как в Битрикс24: нижнее меню со счётчиками, быстрый доступ сверху (05.10) --- */
.nav-niz{display:flex;background:#fff;border-top:1px solid var(--liniya);flex:none}
.nav-niz a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 11px;font-size:11.5px;color:var(--tusk);text-decoration:none;cursor:pointer;position:relative;white-space:nowrap}
.nav-niz a.on{color:var(--akcent);font-weight:600}
.nav-niz .ikonka{position:relative;display:flex}
.bejdzh{position:absolute;top:-6px;left:14px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#E5372B;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-style:normal;line-height:1}
.nav-niz .ava-mal{width:24px;height:24px;border-radius:50%;background:var(--akcent-knopka);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.shapka-glavnaya{display:flex;flex-direction:column;gap:10px;padding:14px 12px 10px 16px;background:#fff;border-bottom:1px solid var(--liniya)}
.shapka-glavnaya .verh{display:flex;align-items:center;gap:4px}
.shapka-glavnaya h2{margin:0;font-size:24px;font-weight:700;flex:1;letter-spacing:-.01em}
.shapka-glavnaya .pod{display:block;font-size:13px;color:var(--tusk);font-weight:400;letter-spacing:0}
.bystro{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.bystro::-webkit-scrollbar{display:none}
.pill{flex:none;position:relative;display:inline-flex;align-items:center;gap:6px;border:1.5px solid #D6D8D3;background:#fff;color:var(--tekst);border-radius:12px;padding:8px 14px;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;font-family:inherit}
.pill[aria-pressed="true"],.pill.on{border-color:var(--tekst);box-shadow:inset 0 0 0 1px var(--tekst)}
.pill .bejdzh{position:static;border:0;height:18px;min-width:18px}
.chat-ryad{display:flex;gap:12px;align-items:center;padding:11px 14px;background:#fff;border-bottom:1px solid #EDEEEB;color:inherit;text-decoration:none;cursor:pointer}
.chat-ryad:hover{background:#FAFAF8}
.chat-ryad .tip{width:48px;height:48px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.chat-ryad .tip.zadacha{background:#2457D6}.chat-ryad .tip.otchet{background:#15803D}.chat-ryad .tip.zamechanie{background:#DC2626}
.chat-ryad .sr{flex:1;min-width:0}
.chat-ryad .sr b{display:block;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-ryad .sr .posl{display:block;font-size:14px;color:var(--tusk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-ryad .sr .obj{display:block;font-size:12px;color:var(--tusk)}
.chat-ryad .pr{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.chat-ryad .pr .bejdzh{position:static;border:0}
.chat-ryad .pr .melko{font-size:12px}
.menyu-punkt{display:flex;align-items:center;gap:14px;padding:13px 16px;background:#fff;border-bottom:1px solid #EDEEEB;color:inherit;text-decoration:none;cursor:pointer;font-size:16px}
.menyu-punkt:hover{background:#FAFAF8}
.menyu-punkt .ik{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.menyu-punkt .str{margin-left:auto;color:#AEB2AB}
.telo.bez-otstupa{padding:0;gap:0}
.metka.s-nov{background:#E3EBFD;color:#1E3F99}
.metka.s-rab{background:#ECE7FD;color:#4A2FA8}
.metka.s-prov{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.metka.s-gotovo{background:var(--ok-fon);color:var(--ok-tekst)}
.metka.s-otkr{background:var(--vozvrat-fon);color:var(--vozvrat-tekst)}
.status-ryad{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* статус цветом (Дмитрий 05.10): красный — нужно вмешаться (значок — почему), жёлтый — в работе,
   зелёный кружок — выполнено, ждёт проверки, зелёный с галочкой — выполнено и проверено */
.sti{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;line-height:1.2}
.sti i{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;font-style:normal}
.sti i:last-of-type{margin-right:3px}
.sti-kr{color:#B42318}.sti-kr i{background:#DC2626;color:#fff}
.sti-zh{color:#7A5A00}.sti-zh i{background:#EAB308}
.sti-pr{color:#166534}.sti-pr i{background:#fff;border:3px solid #16A34A}
.sti-ok{color:#166534}.sti-ok i{background:#16A34A;color:#fff}
.pill .sti i{width:14px;height:14px}.pill .sti i svg{width:8px;height:8px}
.pill .sti-pr i{border-width:2.5px}
.uderzhanie{position:absolute;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;pointer-events:none;z-index:40;
  background:conic-gradient(var(--pravka) calc(var(--p,0)*1%),rgba(36,87,214,.15) 0);-webkit-mask:radial-gradient(circle,transparent 29px,#000 30px);mask:radial-gradient(circle,transparent 29px,#000 30px)}
.uderzhanie-podpis{position:absolute;transform:translate(-50%,-62px);background:var(--pravka);color:#fff;font-size:12px;font-weight:600;padding:4px 9px;border-radius:999px;white-space:nowrap;pointer-events:none;z-index:40}
#ramka{-webkit-touch-callout:none}
body.apk .levo,body.apk .pravo,body.apk .plav{display:none !important}
body.apk .stol{padding:0;gap:0;display:block}
body.apk .telefon{width:100%;height:100dvh;border-radius:0;padding:0;box-shadow:none}
body.apk .ekran-ramka{border-radius:0}
body.apk .pochemu-znak{display:none}
.instrumenty .razd{width:1px;height:28px;background:#3A3F44;flex:none}

/* верх меню: установленная версия серым и маленькая «Обновить» (03.11.2026) */
.m-versiya{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px 2px;min-height:24px}
.m-versiya .knopka.malaya{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}

/* Настоящее приложение: экран телефона на всю площадь (в превью он был в «рамке телефона»). */
html,body{height:100%;margin:0;background:var(--ekran);overscroll-behavior:none}
body{-webkit-tap-highlight-color:transparent}
#ramka{position:fixed;inset:0;overflow:hidden;background:var(--ekran);-webkit-touch-callout:none}
.ekran{display:flex}
.zaglushka{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center;color:var(--tusk)}
.zaglushka b{color:var(--tekst);font-size:18px}
.zagruzka{padding:40px;text-align:center;color:var(--tusk)}
.oshibka-polosa{background:var(--vozvrat-fon);color:var(--vozvrat-tekst);border-radius:12px;padding:10px 12px;font-size:14px}
.kod-krupno{font-size:34px;font-weight:700;letter-spacing:.1em;text-align:center;font-variant-numeric:tabular-nums;padding:8px 0}
.nebo[hidden]{display:none}

/* ---------------------------------------------------------------------------
   Доводка по правилам taste-skill (redesign-existing-projects), 05.10.2026.
   Прочтение: рабочее приложение для стройплощадки (руки в перчатках, солнце,
   плохая связь) — доверие и читаемость важнее эффектов. Фирменное сохранено:
   оранжевый акцент, Golos Text, раскладка экранов из превью.
   --------------------------------------------------------------------------- */
:root{
  --ten:0 1px 2px rgba(52,46,30,.06),0 4px 14px -6px rgba(52,46,30,.14);   /* тень с оттенком фона, не чёрная */
  --ten-sil:0 2px 4px rgba(52,46,30,.08),0 14px 30px -12px rgba(52,46,30,.25);
  --plavno:cubic-bezier(.2,.8,.2,1);
}
html{scroll-behavior:smooth}
body{font-feature-settings:"tnum" 0;text-rendering:optimizeLegibility}
h2,.shapka-glavnaya h2{letter-spacing:-.02em;text-wrap:balance}
.shapka-glavnaya h2{font-size:26px;line-height:1.1}
p,.melko,.tusk{text-wrap:pretty}
.num,.bolshoe,.kod-krupno,.kolvo input{font-variant-numeric:tabular-nums}

/* Подзаголовки разделов: не капсом, а обычным предложением — спокойнее читается */
.zagolovok-razdela{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:var(--tusk)}

/* Карточки: тонкая граница + тень с оттенком фона вместо «рамка и серая тень» */
.kartochka{border-color:transparent;box-shadow:var(--ten)}
a.kartochka{transition:transform .2s var(--plavno),box-shadow .2s var(--plavno)}
a.kartochka:active{transform:scale(.985);box-shadow:0 1px 2px rgba(52,46,30,.08)}

/* Кнопки: отклик на нажатие и видимый фокус */
.knopka,.pill,.vybor button,.menyu-punkt,.chat-ryad,.nav-niz a,.mikrofon,.tg-knopka{transition:transform .15s var(--plavno),background-color .2s var(--plavno),box-shadow .2s var(--plavno),border-color .2s var(--plavno)}
.knopka{box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 6px 16px -8px rgba(194,65,12,.55)}
.knopka.vtor{box-shadow:none}
.knopka:active,.pill:active,.vybor button:active,.mikrofon:active{transform:scale(.97)}
.menyu-punkt:active,.chat-ryad:active{background:var(--ekran)}
.knopka:disabled{opacity:.6;transform:none;cursor:default}
:focus-visible{outline:3px solid color-mix(in srgb,var(--akcent) 55%,transparent);outline-offset:2px;border-radius:12px}
.nav-niz a.on .ikonka{transform:translateY(-1px)}
.nav-niz a{transition:color .2s var(--plavno)}

/* Аватары — скруглённые квадраты, а не круги */
.ava,.nav-niz .ava-mal{border-radius:32%}

/* Поля ввода — чуть мягче и крупнее для работы в перчатках */
.pole,.vvod-koda{border-color:#D3D6CF;transition:border-color .2s var(--plavno),box-shadow .2s var(--plavno)}
.pole:focus,.vvod-koda:focus{outline:none;border-color:var(--akcent);box-shadow:0 0 0 4px color-mix(in srgb,var(--akcent) 16%,transparent)}

/* Экран входа: собранный, с характером, без «всё по центру» */
/* Не влезает в телефон — экран прокручивается (правка №17); прижат к низу «логотипом» с margin-bottom:auto,
   а не justify-content:flex-end — иначе верх уходит за край и до него не долистать */
.vhod-telo{justify-content:flex-start;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:28px 22px calc(28px + env(safe-area-inset-bottom));gap:18px;
  background:radial-gradient(120% 60% at 100% 0%,color-mix(in srgb,var(--akcent) 14%,transparent),transparent 60%),var(--ekran)}
.vhod-zag{margin:0 0 4px;font-size:34px;line-height:1.05;letter-spacing:-.03em;font-weight:700;text-wrap:balance}
.vhod-zag em{font-style:normal;color:var(--akcent)}
.logo{font-size:22px;margin-bottom:auto;padding-top:calc(8px + env(safe-area-inset-top))}.logo .kv{width:44px;height:44px;border-radius:30%}
.vhod-telo .vvod-koda{letter-spacing:.18em}
.vhod-telo > *{flex-shrink:0}
@media (max-height:720px){.vhod-telo{gap:12px;padding-top:18px}.vhod-zag{font-size:28px}.vhod-telo .vvod-koda{font-size:24px;padding:12px}}

/* Заготовки вместо «Загружаю…» — повторяют форму карточек */
.skelet{border-radius:16px;background:linear-gradient(90deg,#E9EAE6 0,#F3F4F1 40%,#E9EAE6 80%);background-size:300% 100%;animation:skelet 1.3s linear infinite}
.skelet.k{height:112px}.skelet.s{height:58px;border-radius:12px}
@keyframes skelet{to{background-position:-150% 0}}

/* Пустые состояния: понятный первый шаг вместо пустоты */
.pusto-blok{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 18px;border-radius:18px;background:#fff;box-shadow:var(--ten)}
.pusto-blok .znak{width:48px;height:48px;border-radius:30%;display:flex;align-items:center;justify-content:center;background:var(--akcent-tusk);color:var(--akcent)}
.pusto-blok b{font-size:18px;letter-spacing:-.01em}
.pusto-blok span{color:var(--tusk);line-height:1.45}
.zaglushka{align-items:flex-start;text-align:left;justify-content:flex-start;padding:22px 16px}

/* Появление экрана: короткий и спокойный подъём содержимого */
.ekran .telo > *{animation:poyavl .35s var(--plavno) both}
.ekran .telo > *:nth-child(2){animation-delay:.04s}.ekran .telo > *:nth-child(3){animation-delay:.08s}.ekran .telo > *:nth-child(n+4){animation-delay:.12s}
@keyframes poyavl{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}}

/* ---------------------------------------------------------------------------
   Проход по Vercel Web Interface Guidelines и UI/UX Pro Max (05.10.2026).
   --------------------------------------------------------------------------- */
/* Заголовки экранов — h1 (одна главная тема на экран), вид — прежний */
.shapka h1{margin:0;font-size:20px;font-weight:600;flex:1;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
.shapka h1 .pod{display:block;font-size:13px;color:var(--tusk);font-weight:400;letter-spacing:0}
.shapka-glavnaya h1{margin:0;font-size:26px;font-weight:700;flex:1;line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.shapka-glavnaya h1 .pod{display:block;font-size:13px;color:var(--tusk);font-weight:400;letter-spacing:0;margin-top:2px}

/* Касание: без задержки двойного тапа; области не меньше 44–48 точек (работа в перчатках) */
body{touch-action:manipulation}
.vybor button{min-height:44px}
.knopka.malaya,.nazad,.tg-knopka,.mikrofon{min-height:48px;min-width:48px}
.nazad{width:48px;height:48px}
.pill{min-height:44px}

/* Безопасные зоны: вырез камеры сверху, полоса жестов снизу */
.shapka,.shapka-glavnaya{padding-top:calc(12px + env(safe-area-inset-top))}
.nav-niz{padding-bottom:env(safe-area-inset-bottom)}
.niz:last-child{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.forma-pravki{overscroll-behavior:contain}

/* Длинные имена и названия не ломают карточки */
.kartochka b,.chel b,.chat-ryad b,.menyu-punkt{overflow-wrap:anywhere}
.menyu-punkt[hidden],.zagolovok-razdela[hidden]{display:none}
.menyu-poisk{margin:12px 16px 0}
.chel > span{min-width:0}

/* Ошибка — под полем */
.oshibka-polya{margin:6px 2px 0;color:var(--vozvrat-tekst);font-size:14px;line-height:1.35}
[aria-invalid="true"]{border-color:var(--vozvrat-tekst) !important}

/* Опасное действие ждёт второго нажатия — это видно */
.podtverdi{background:var(--vozvrat-fon) !important;color:var(--vozvrat-tekst) !important;border-color:var(--vozvrat-tekst) !important}

/* Заготовки загрузки — пульс прозрачностью (дёшево для телефона), а не бег градиента */
.skelet{background:#E6E8E3;animation:skelet-puls 1.2s ease-in-out infinite alternate}
@keyframes skelet-puls{from{opacity:.55}to{opacity:1}}

/* ---------- Тёмная тема: по настройке телефона ---------- */
:root[data-tema="temnaya"]{
    --fon:#101211;--ekran:#141715;--kartochka:#1D211F;--liniya:#2E3430;
    --tekst:#ECEEEA;--tusk:#A9B0AB;--akcent:#E8692F;--akcent-tusk:#3A2318;
    --ok:#3BB06A;--ok-fon:#16301F;--ok-tekst:#8FE0AC;
    --zhdyot:#F0B44C;--zhdyot-fon:#3A2D10;--zhdyot-tekst:#F3CC7E;
    --vozvrat-fon:#3D1F18;--vozvrat-tekst:#F6A893;--pravka:#6E93F2;
    --ten:0 1px 2px rgba(0,0,0,.4),0 6px 18px -8px rgba(0,0,0,.6);
    color-scheme:dark;
  }
:root[data-tema="temnaya"] .shapka,:root[data-tema="temnaya"] .shapka-glavnaya,:root[data-tema="temnaya"] .niz,:root[data-tema="temnaya"] .nav-niz,:root[data-tema="temnaya"] .nav,:root[data-tema="temnaya"] .vkladki,:root[data-tema="temnaya"] .menyu-punkt,:root[data-tema="temnaya"] .chat-ryad,:root[data-tema="temnaya"] .pusto-blok,:root[data-tema="temnaya"] .forma-pravki,:root[data-tema="temnaya"] .tg-niz{background:var(--kartochka);border-color:var(--liniya)}
:root[data-tema="temnaya"] .pole,:root[data-tema="temnaya"] .vvod-koda,:root[data-tema="temnaya"] .vybor button,:root[data-tema="temnaya"] .knopka.vtor,:root[data-tema="temnaya"] .pill,:root[data-tema="temnaya"] .mikrofon,:root[data-tema="temnaya"] .kolvo input{background:var(--ekran);border-color:#3A413C;color:var(--tekst)}
:root[data-tema="temnaya"] .vybor button[aria-pressed="true"]{background:var(--tekst);border-color:var(--tekst);color:var(--ekran)}
:root[data-tema="temnaya"] .vybor button[aria-pressed="true"] small{color:#4A514C}
/* Контраст: белый на кнопке — по тёмному оранжевому (5,2:1); светлый оранжевый — только для надписей и значков (5,0:1) */
:root[data-tema="temnaya"] .knopka:not(.vtor){background:var(--akcent-knopka);box-shadow:none}
:root[data-tema="temnaya"] .knopka:not(.vtor):hover{background:var(--akcent-nazhat)}
:root[data-tema="temnaya"] .logo .kv,:root[data-tema="temnaya"] .nav-niz .ava-mal,:root[data-tema="temnaya"] #ramka .ava[style*="--akcent"]{background:var(--akcent-knopka)}
:root[data-tema="temnaya"] .metka.ser{background:#2A302C;color:#C6CCC7}
:root[data-tema="temnaya"] .ava{background:#2E3430;color:var(--tekst)}
:root[data-tema="temnaya"] .menyu-punkt:active,:root[data-tema="temnaya"] .chat-ryad:active{background:var(--ekran)}
:root[data-tema="temnaya"] .skelet{background:#262B28}
:root[data-tema="temnaya"] .vsplyv{background:#ECEEEA;color:#141715}
:root[data-tema="temnaya"] .vhod-telo{background:radial-gradient(120% 60% at 100% 0%,color-mix(in srgb,var(--akcent) 16%,transparent),transparent 60%),var(--ekran)}
:root[data-tema="temnaya"] .kartochka[style*="--ok-fon"],:root[data-tema="temnaya"] .kartochka[style*="ok-fon"]{color:var(--tekst)}

/* Голосовая правка: кнопка записи заметная, во время записи — пульс и секундомер */
.forma-pravki{width:min(320px,calc(100vw - 16px))}
.pravka-zapis{display:flex;align-items:center;gap:10px;font-weight:600;font-variant-numeric:tabular-nums}
.pravka-zapis i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--liniya)}
.pravka-zapis.idyot i{background:var(--akcent-knopka);animation:pulse 1.2s infinite}
.pravka-zapis.net{font-weight:400;color:var(--vozvrat-tekst)}
.pravka-zapis.net i{display:none}

/* Объект и смета */
.vkladki{position:sticky;top:0;z-index:2}
.shapka .tg-knopka{flex:none;margin-right:-6px}
.razdel-smety{display:flex;flex-direction:column;gap:12px}
.razdel-smety h2.zagolovok-razdela{margin:6px 2px 0}
.poz .polosa{margin-top:2px}
details summary{min-height:32px;display:flex;align-items:center}
:root[data-tema="temnaya"] .vkladki{background:var(--kartochka)}
:root[data-tema="temnaya"] .polosa{background:#2E3430}
/* Редкое и опасное действие — неприметной текстовой кнопкой, а не второй большой */
.tekst-knopka{background:none;border:0;font:inherit;font-size:15px;color:var(--tusk);text-decoration:underline;text-underline-offset:3px;min-height:44px;cursor:pointer;align-self:center;padding:0 12px;border-radius:10px}
.tekst-knopka.podtverdi{text-decoration:none;padding:0 16px}

/* счётчик непрочитанного на нижнем меню */
.nav-niz .ikonka { position: relative; }
.nav-niz .bejdzh { position: absolute; top: -4px; right: -10px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--akcent-knopka); color: #fff; font: 600 11px/18px 'Golos Text', system-ui, sans-serif; font-style: normal; text-align: center;
  box-shadow: 0 0 0 2px var(--kartochka); font-variant-numeric: tabular-nums; }

/* === Деньги === */
/* Пять вкладок объекта на узком телефоне: прокрутка вбок вместо переноса */
.vkladki{overflow-x:auto;scrollbar-width:none}
.vkladki::-webkit-scrollbar{display:none}
.den-gruppa{display:flex;flex-direction:column;gap:8px}
.den-neobyaz{font-weight:400;color:var(--tusk)}
/* Сумма — крупными цифрами, поле во всю ширину: попасть пальцем в перчатке */
.den-summa{display:flex;align-items:center;gap:8px;border:1.5px solid #C9CCC6;border-radius:14px;background:#fff;padding:0 16px;transition:border-color .2s var(--plavno),box-shadow .2s var(--plavno)}
.den-summa:focus-within{border-color:var(--akcent);box-shadow:0 0 0 4px color-mix(in srgb,var(--akcent) 16%,transparent)}
.den-summa input{flex:1;min-width:0;border:0;background:transparent;color:var(--tekst);font:inherit;font-size:34px;font-weight:700;letter-spacing:-.02em;padding:12px 0;font-variant-numeric:tabular-nums;outline:none}
.den-summa span{font-size:24px;font-weight:600;color:var(--tusk)}
.den-summa:has([aria-invalid="true"]){border-color:var(--vozvrat-tekst)}
#den-summa-pod:empty{display:none}
/* Строки операций */
a.stroka.den-op{color:inherit;text-decoration:none;min-height:48px}
a.stroka.den-op:active{background:var(--ekran)}
.den-op.otmenena .im b,.den-op.otmenena .den-summa-str{text-decoration:line-through;color:var(--tusk)}
.den-sprava{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;text-align:right}
.den-summa-str{font-variant-numeric:tabular-nums;white-space:nowrap}
.den-summa-str.plyus,.den-plyus{color:var(--ok-tekst)}
.den-minus{color:var(--vozvrat-tekst)}
/* Кнопки «добавить» внутри карточек: заливка основным цветом, чтобы не терялись на белом */
.knopka.vtor.den-dobavit{background:var(--akcent-tusk);border-color:color-mix(in srgb,var(--akcent) 45%,transparent);color:var(--akcent);margin-top:2px}
.knopka.vtor.den-dobavit:hover{background:color-mix(in srgb,var(--akcent-tusk) 80%,var(--akcent))}
:root[data-tema="temnaya"] .knopka.vtor.den-dobavit{background:var(--akcent-tusk);border-color:color-mix(in srgb,var(--akcent) 45%,transparent);color:var(--akcent)}
.den-pusto{box-shadow:none;background:transparent;border:1.5px dashed var(--liniya)}
.den-dolg{background:var(--zhdyot-fon);color:var(--zhdyot-tekst);border-radius:10px;padding:8px 10px;font-size:14px}
/* Подотчёт людей */
.den-chel{min-height:52px;padding:4px 0}
.den-chel-im{flex:1;min-width:0;display:flex;flex-direction:column}
.den-chel-im .melko{min-width:0}
/* Проверка чека */
.den-chek-zag{color:inherit;text-decoration:none;flex-wrap:nowrap;align-items:flex-start}
.den-chek-zag .num{flex:none;white-space:nowrap}
.den-chek-knopki .knopka,.den-niz-ryad > *{flex:1}
.den-niz-ryad{flex-wrap:nowrap}
.den-vopros,.den-vopros-k{background:var(--vozvrat-fon);color:var(--vozvrat-tekst);border-radius:10px;padding:8px 10px;font-size:14px;line-height:1.4}
.den-vopros-k{box-shadow:none;padding:12px 14px}
.den-foto-mal{grid-template-columns:repeat(4,minmax(0,1fr))}
.den-foto img,.den-foto-mal img,.den-foto-est img{width:100%;height:100%;object-fit:cover;display:block}
.den-foto .foto.snyat{color:var(--tusk);font:inherit;font-size:13px}
.den-foto-ubrat{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(15,17,18,.72);color:#fff;font-size:20px;line-height:1;cursor:pointer}
/* Расходы по категориям и карточка во вкладке «Смета» */
.den-kategorii{gap:12px}
.den-kat{display:flex;flex-direction:column;gap:6px}
.den-tri{display:flex;gap:8px}
.den-tri span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.den-tri small{font-size:12px;color:var(--tusk)}
.den-tri b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.den-smeta .skelet.s{height:40px}
:root[data-tema="temnaya"] .den-summa{background:var(--ekran);border-color:#3A413C}
:root[data-tema="temnaya"] .stroka{border-color:var(--liniya)}
:root[data-tema="temnaya"] .den-foto .foto.snyat{background:var(--ekran);border-color:#4A514C}

/* === Замечания === */
/* Список: карточка целиком нажимается (ссылка растянута), кнопка «Проверено» — поверх неё */
.zam-kartochka{position:relative}
.zam-kartochka:active{transform:scale(.985)}
.zam-ssylka{color:inherit;text-decoration:none;min-width:0;flex:1}
.zam-ssylka::after{content:"";position:absolute;inset:0;border-radius:16px}
.zam-ssylka b{font-size:16px}
.zam-nad{position:relative;z-index:1}
.zam-bystro{gap:8px}
.zam-bystro .knopka{flex:1;gap:6px}
.zam-tekst{font-size:15px;line-height:1.4;overflow-wrap:anywhere;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.zam-tekst.polnyy{display:block;-webkit-line-clamp:unset;font-size:16px}
.zam-vozvrat{background:var(--vozvrat-fon);color:var(--vozvrat-tekst);border-radius:10px;padding:8px 10px;font-size:14px;line-height:1.35}
.zam-filtr{margin:0 -14px;padding:0 14px 2px}
.zam-krit-svodka{flex-wrap:wrap;gap:12px}
.zam-spisok{display:flex;flex-direction:column;gap:12px}
.zam-lenta{grid-template-columns:repeat(4,minmax(0,1fr))}
.foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.foto .esche{position:absolute;inset:0;background:rgba(15,17,18,.55);color:#fff;font-weight:600;font-size:17px;display:flex;align-items:center;justify-content:center}
.foto .posle{position:absolute;left:6px;bottom:6px;background:var(--ok);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px}
.foto .karandash{z-index:1}
button.foto{border:0;padding:0;cursor:pointer;font:inherit}
.zam-golos-plitka{background:var(--ekran)}
.zam-status-blok{gap:8px}
.zam-st-krupno .sti{font-size:15px}
.zam-st-krupno .sti i{width:24px;height:24px}
.zam-deystviya{flex-wrap:wrap}
.zam-deystviya:empty{display:none}
.zam-vozvrat-forma{display:flex;flex-direction:column;gap:8px}
.zam-golos{display:flex;align-items:center;gap:8px}
.zam-golos audio{flex:1;min-width:0;height:44px}
.zam-data{max-width:220px}
/* Форма: новые фото — с крестиком «убрать» */
.zf-novoe .zf-otkryt{all:unset;position:absolute;inset:0;cursor:pointer}
.zf-novoe .zf-ubrat{position:absolute;right:4px;top:4px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(15,17,18,.72);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.zf-novoe .zf-ubrat svg{width:16px;height:16px}
.zam-foto-forma .foto.snyat,.zam-foto-karta .foto.snyat{min-height:96px}
.zam-krit-vybor button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:15px}
.zam-krit-vybor button i{width:12px;height:14px;display:inline-block;clip-path:polygon(0 0,100% 0,72% 50%,100% 100%,0 100%)}
.zam-status-blok .vybor button,.zam-krit-vybor button{min-height:48px}
.zam-golos-status{margin-top:-6px}
/* Слой поверх экрана: просмотр фото и редактор пометок */
.zam-sloy{position:fixed;inset:0;z-index:50;background:#0F1112;color:#fff;display:flex;flex-direction:column;overscroll-behavior:contain}
.zam-sloy-shapka{display:flex;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 10px 8px;background:#16191B;min-height:60px}
.zam-sloy-shapka b{flex:1;font-size:17px;font-weight:600;line-height:1.2}
.zam-sloy-shapka .pod{display:block;font-size:13px;font-weight:400;color:#A9B0AB}
.zam-sloy-shapka .tg-knopka{color:#fff}
.zam-sloy-shapka .tg-knopka:hover{background:#22262A}
.zam-sloy-shapka .knopka{min-width:96px}
.zam-sloy .red-telo{padding:8px}
.zam-holst{touch-action:none;border-radius:6px;display:block;cursor:crosshair}
.zam-krupno{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.zam-sloy .instrumenty{justify-content:safe center;gap:6px;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}
.zam-sloy .instrumenty button{min-height:48px;min-width:46px;padding:0 8px}
.zam-sloy .instrumenty .cvet{width:34px;height:34px;min-width:34px;min-height:34px;padding:0}
.zam-sloy .instrumenty button:disabled{opacity:.35;cursor:default}
.zam-prosmotr-knopki:empty{display:none}
body > .vsplyv{z-index:60}
@media (max-width:360px){.zam-sloy .instrumenty{gap:4px}.zam-sloy .instrumenty button{min-width:44px}}
:root[data-tema="temnaya"] .zam-foto-forma .foto.snyat,:root[data-tema="temnaya"] .zam-foto-karta .foto.snyat{background:var(--kartochka);border-color:#4A514C;color:var(--tusk)}
:root[data-tema="temnaya"] .sti-kr{color:#F6A893}
:root[data-tema="temnaya"] .sti-zh{color:#F3CC7E}
:root[data-tema="temnaya"] .sti-pr,:root[data-tema="temnaya"] .sti-ok{color:#8FE0AC}
:root[data-tema="temnaya"] .sti-pr i{background:transparent}
:root[data-tema="temnaya"] .zam-golos-plitka{background:#262B28}

/* === Задачи, чаты, лента === */
.chat-ryad .tip.obekt{background:var(--akcent-knopka)}
.chat-ryad{min-height:72px}
.chat-ryad .pr .metka{font-size:12px;padding:2px 8px}
.chat-ryad .sr .posl .sti{font-size:13px}
.lenta-zag{margin:16px 16px 6px}
.lenta-zadacha .sr .posl{white-space:normal;overflow:visible}
.ekran[data-ekran="chat"] .shapka h1{font-size:18px}
.zag-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.chat-ryad.sobytie .sr b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* задачи: карточки, статус цветом, кнопки */
.zad-karta{cursor:pointer}
.zad-zag{color:inherit;text-decoration:none;font-weight:500;font-size:16px;line-height:1.3;overflow-wrap:anywhere;min-height:24px}
.zad-knopki{gap:8px;flex-wrap:wrap}
.zad-knopki > *{flex:1 1 140px}
.zad-nazv{font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.zad-opis{margin:0;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.zad-polya{gap:0;padding-top:4px;padding-bottom:4px}
.zad-pole{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--liniya)}
.zad-pole:last-child{border-bottom:0}
.zad-pole > span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}
.zad-blok{display:flex;flex-direction:column;gap:8px}
.zad-blok b{font-weight:500}
/* Низ задачи — компактно (правка №26): кнопки в ряд, ниже и мельче */
.zad-niz{flex-direction:row;flex-wrap:wrap;gap:6px;padding-top:8px;padding-bottom:10px}
.zad-niz > *{flex:1 1 130px}
.zad-niz > .zad-blok{flex-basis:100%;gap:6px}
.zad-niz .knopka{min-height:44px;font-size:15px;padding:0 12px;border-radius:12px}
.zad-niz .zad-blok b{font-size:14px}
.zad-niz .tekst-knopka{flex:0 0 auto;font-size:14px;min-height:40px;width:100%}
.zad-foto{margin-top:4px}
.zad-foto-forma .foto.snyat{min-height:96px}
:root[data-tema="temnaya"] .zad-foto-forma .foto.snyat{background:var(--kartochka);border-color:#4A514C;color:var(--tusk)}
.status-ryad .sti{flex-wrap:wrap}
.knopka-chata{gap:8px}
.knopka-chata .bejdzh{position:static;border:0;margin-left:2px}
.zapis-stroka{color:var(--akcent);font-size:13px;text-align:center}
.zapis-stroka:empty{display:none}
.srok-data{margin-top:-4px}

/* чат: пузыри как в Telegram, поле ввода над нижним меню */
.chat-telo{gap:6px;padding:12px 10px 14px;background:var(--ekran);overscroll-behavior:contain}
.chat-telo .soobshch{align-self:flex-start;max-width:82%;border-radius:16px 16px 16px 6px;box-shadow:0 1px 1px rgba(52,46,30,.06);gap:4px}
.chat-telo .soobshch.moe{align-self:flex-end;border-radius:16px 16px 6px 16px}
.soobshch .tekst{white-space:pre-wrap;overflow-wrap:anywhere}
.soobshch.s-foto{padding:4px 4px 6px}
.soobshch.s-foto .kto,.soobshch.s-foto .tekst{padding:0 7px}
.soobshch.s-foto .vr{padding-right:6px}
.chat-foto{display:block;width:240px;max-width:100%;min-height:120px;max-height:320px;object-fit:cover;border-radius:12px;background:#C9CDC6;cursor:zoom-in}
/* альбом: несколько фото подряд — одной плиткой 2 в ряд, время на последнем фото */
.chat-telo .albom{align-self:flex-start;display:grid;grid-template-columns:1fr 1fr;gap:3px;width:280px;max-width:82%;padding:4px;background:var(--kartochka);border:1px solid var(--liniya);border-radius:16px 16px 16px 6px;box-shadow:0 1px 1px rgba(52,46,30,.06)}
.chat-telo .albom.moe{align-self:flex-end;background:#E3EBFD;border-color:#E3EBFD;border-radius:16px 16px 6px 16px}
.albom > .kto{grid-column:1/-1;font-size:12px;font-weight:600;color:var(--tusk);padding:2px 7px 3px}
.chat-telo .albom .soobshch{position:relative;max-width:none;padding:0;border:0;border-radius:4px;background:none;box-shadow:none;overflow:hidden;align-self:stretch}
.albom .soobshch .kto,.albom .soobshch:not(:last-child):not(.oshibka) .vr{display:none}
.albom .soobshch .vr{position:absolute;right:5px;bottom:5px;margin:0;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff}
.albom .soobshch.oshibka{outline:2px solid var(--vozvrat-tekst);outline-offset:-2px}
.albom .chat-foto{width:100%;height:auto;aspect-ratio:1;min-height:0;max-height:none;border-radius:0}
.albom > .soobshch.shir{grid-column:1/-1}
.albom > .soobshch.shir .chat-foto{aspect-ratio:2/1}
.golos-ryad{display:flex;align-items:center;gap:10px;min-width:150px}
.golos-play{width:44px;height:44px;border-radius:50%;border:0;background:var(--akcent-knopka);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer;padding:0}
.soobshch .rassh{font-size:14px;color:var(--tusk);font-style:italic;overflow-wrap:anywhere}
.soobshch.otpravka{opacity:.65}
.soobshch.oshibka{opacity:1;border-color:var(--vozvrat-tekst) !important;cursor:pointer}
.soobshch.oshibka .vr{color:var(--vozvrat-tekst)}
.chat-telo .sistemnoe{align-self:center;max-width:90%;padding:2px 8px;line-height:1.35}
.den-metka{align-self:center;margin:8px 0 2px}
.den-metka span{display:inline-block;background:color-mix(in srgb,var(--tekst) 9%,transparent);color:var(--tusk);font-size:12.5px;font-weight:500;padding:3px 12px;border-radius:999px}
.chat-niz{flex:none;background:#fff;border-top:1px solid var(--liniya)}
.chat-niz .tg-niz{border-top:0}
.chat-niz .zapis-stroka{padding:6px 12px 0}
.tg-knopka.idyot{background:var(--akcent-knopka);color:#fff;animation:pulse 1.2s infinite}
.tg-knopka{min-width:48px;min-height:48px}
.ekran.pishu .nav-niz{display:none}
.uchastniki .ava{cursor:pointer}
.uchastniki .dob{min-height:40px}
.foto-prosmotr{position:fixed;inset:0;z-index:60;background:rgba(10,12,11,.94);display:flex;align-items:center;justify-content:center;padding:16px}
.foto-seriya{position:fixed;inset:0;z-index:60;background:rgba(10,12,11,.7);display:flex;align-items:flex-end;justify-content:center}
.foto-seriya-okno{background:var(--kartochka);color:var(--tekst);width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));max-height:85vh;overflow:auto}
.foto-seriya-setka{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.foto-seriya-setka .foto{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden}
.foto-seriya-setka img{width:100%;height:100%;object-fit:cover}
.foto-seriya-setka .zf-ubrat{position:absolute;right:4px;top:4px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(15,17,18,.72);color:#fff;cursor:pointer}
.foto-seriya .ryad-knopok .knopka{flex:1}
.foto-prosmotr img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.foto-prosmotr .foto-original{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);color:#16191B;border:0;white-space:nowrap}
.foto-prosmotr .tg-knopka{position:absolute;top:calc(10px + env(safe-area-inset-top));right:10px;color:#fff;font-size:22px;background:rgba(255,255,255,.12)}

:root[data-tema="temnaya"] .chat-niz,:root[data-tema="temnaya"] .uchastniki,:root[data-tema="temnaya"] .chat-dobavit,:root[data-tema="temnaya"] .tg-vlozh{background:var(--kartochka);border-color:var(--liniya)}
:root[data-tema="temnaya"] .chat-ryad{border-bottom-color:var(--liniya)}
:root[data-tema="temnaya"] .tg-pole{background:var(--ekran);color:var(--tekst)}
:root[data-tema="temnaya"] .uchastniki .ava{border-color:var(--kartochka)}
:root[data-tema="temnaya"] .uchastniki .dob{background:var(--ekran);border-color:#5A625C;color:var(--tekst)}
:root[data-tema="temnaya"] .chat-telo .soobshch{background:var(--kartochka);border-color:var(--liniya)}
:root[data-tema="temnaya"] .chat-telo .soobshch.moe{background:#2B3A55;border-color:#2B3A55}
:root[data-tema="temnaya"] .golos-play{background:var(--akcent-knopka)}
:root[data-tema="temnaya"] .chat-foto{background:#2E3430}
:root[data-tema="temnaya"] .chat-telo .albom{background:var(--kartochka);border-color:var(--liniya)}
:root[data-tema="temnaya"] .chat-telo .albom.moe{background:#2B3A55;border-color:#2B3A55}
:root[data-tema="temnaya"] .chat-telo .albom .soobshch{background:none}
:root[data-tema="temnaya"] .sti-kr{color:#F6A893}
:root[data-tema="temnaya"] .sti-zh{color:#F3CC7E}
:root[data-tema="temnaya"] .sti-pr,:root[data-tema="temnaya"] .sti-ok{color:#8FE0AC}
:root[data-tema="temnaya"] .sti-pr i{background:var(--kartochka)}
:root[data-tema="temnaya"] .den-metka span{background:#262B28}

/* === клавиатура открыта: только поле и кнопка действия === */
.klaviatura .ekran .shapka,.klaviatura .ekran .nav-niz,.klaviatura .ekran .niz .melko{display:none}

/* === голос в любое поле (правка №24) === */
.s-golosom{position:relative;display:block;min-width:0}
.s-golosom>.pole{width:100%;padding-right:48px}
.golos-v-pole{position:absolute;top:4px;right:4px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--akcent);cursor:pointer}
.golos-v-pole:active{transform:scale(.94)}
.golos-v-pole.idyot{background:var(--akcent-knopka);color:#fff;animation:pulse 1.2s infinite}
.golos-v-pole:disabled{opacity:.5}
.golos-v-pole-podpis{display:block;margin-top:4px;font-variant-numeric:tabular-nums}
.golos-v-pole-podpis:empty{display:none}

/* === окно правки: поверх всего, над клавиатурой (top ставит app.js по видимой части экрана) === */
.forma-pravki{position:fixed;left:8px;right:8px;width:auto;max-width:480px;margin:0 auto;z-index:200;overflow-y:auto}
.forma-pravki textarea{min-height:96px;max-height:40vh}
/* открыто окно правки и клавиатура — видно только окно правки, остальное убираем */
.pravka-otkryta.klaviatura #ramka{visibility:hidden}
.pravka-otkryta.klaviatura body{background:var(--ekran)}
.pravka-otkryta.klaviatura .forma-pravki textarea{min-height:35vh}

/* === числа — цифровая клавиатура (type=number), без стрелок-счётчиков === */
input[type="number"]{-moz-appearance:textfield;appearance:textfield}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* === удержание 3 с для правки: Android не должен перехватывать долгое нажатие (выделение, меню ссылки, перетаскивание) === */
#ramka,#ramka *:not(input):not(textarea):not([contenteditable]){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
#ramka img,#ramka a{-webkit-user-drag:none}

/* === Замечания: поиск, быстрые фильтры, разделы, отчёт о выполнении (06.10) === */
.zam-poisk .pole{width:100%}
.zam-bystrye .pill,.zam-razdely .pill{flex:none;white-space:nowrap;gap:6px}
.zam-bystrye .pill .tusk{font-variant-numeric:tabular-nums}
.krit-tochka{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.krit-tochka.k-kr{background:#DC2626}.krit-tochka.k-zh{background:#F0B44C}.krit-tochka.k-zl{background:#15803D}
.zam-pokazano:empty{display:none}
.zam-pokazano{display:flex;align-items:center;gap:6px}
.zam-gruppa{display:flex;flex-direction:column;gap:12px}
.zam-gruppa[hidden]{display:none}
.zam-gruppa-zag{margin:8px 2px 0}
.zam-spisok{display:flex;flex-direction:column;gap:12px}
.zam-dokumenty{gap:8px}
.zam-dokumenty .knopka{flex:1;min-width:0}
.zam-deystviya{flex-wrap:wrap}
.zam-otchet-blok{border-left:4px solid var(--ok)}
/* длинный адрес или полное название объекта — одной строкой в шапке (целиком — в документах) */
.shapka h1 .pod{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}

/* === Разговор с помощником (dialog.js, 08.10.2026) === */
.razg-temy { display: grid; gap: 8px; margin: 4px 0 12px; }
.razg-tema { display: grid; gap: 2px; text-align: left; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--liniya);
  background: var(--kartochka); font: inherit; color: inherit; cursor: pointer; min-height: 56px; }
.razg-tema span { font-size: 13px; color: var(--tusk); line-height: 1.35; }
.razg-tema[aria-checked="true"] { border-color: var(--akcent-knopka); box-shadow: 0 0 0 1px var(--akcent-knopka) inset; }
.razg-proshlyy { display: grid; gap: 4px; text-decoration: none; color: inherit; margin-bottom: 8px; }
.razg-lenta { display: flex; flex-direction: column; gap: 10px; padding-bottom: 210px; }
.razg-soob { display: flex; flex-direction: column; max-width: 88%; }
.razg-soob.pomoshnik { align-self: flex-start; }
.razg-soob.ya { align-self: flex-end; align-items: flex-end; }
.razg-puzyr { padding: 11px 14px; border-radius: 18px; font-size: 17px; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.pomoshnik .razg-puzyr { background: var(--kartochka); border: 1px solid var(--liniya); border-bottom-left-radius: 6px; }
.ya .razg-puzyr { background: var(--akcent-knopka); color: #fff; border-bottom-right-radius: 6px; font-size: 16px; }
.razg-ponyal { font-size: 13px; color: var(--tusk); margin: 0 0 4px 6px; }
.razg-slushat { border: 0; background: none; font-size: 15px; margin-left: 6px; cursor: pointer; padding: 2px 4px; vertical-align: middle; }
.razg-dumaet { display: flex; gap: 5px; align-items: center; min-height: 44px; }
.razg-dumaet span { width: 8px; height: 8px; border-radius: 50%; background: var(--tusk); animation: razg-tochki 1.2s infinite ease-in-out; }
.razg-dumaet span:nth-child(2) { animation-delay: .15s; } .razg-dumaet span:nth-child(3) { animation-delay: .3s; }
@keyframes razg-tochki { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }
.razg-niz { display: grid; gap: 6px; }
.razg-polosa { height: 4px; border-radius: 2px; background: var(--liniya); overflow: hidden; }
.razg-polosa span { display: block; height: 100%; background: var(--akcent-knopka); transition: width .4s; }
.razg-status { text-align: center; }
.razg-status:empty { display: none; }
.razg-sohr { display: grid; gap: 6px; }
.razg-sohr:empty { display: none; }
.razg-sohr-ryad { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; border: 1px solid #C62828; font-size: 14px; }
.razg-sohr-ryad span { flex: 1; min-width: 150px; font-weight: 600; }
.razg-mik { --uroven: 0; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; border-radius: 30px; border: 0;
  background: var(--akcent-knopka); color: #fff; font: 600 17px/1.2 inherit; cursor: pointer; padding: 0 18px; }
.razg-mik svg { width: 26px; height: 26px; }
.razg-mik.idyot { background: #C62828; box-shadow: 0 0 0 calc(4px + var(--uroven) * 14px) rgba(198, 40, 40, .22); transition: box-shadow .1s; }
.razg-tekst { display: flex; gap: 8px; }
.razg-tekst .pole { flex: 1; min-width: 0; margin: 0; }
.razg-nastr { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: center; justify-content: center; font-size: 14px; }
.razg-nastr label { display: inline-flex; gap: 6px; align-items: center; min-height: 32px; }
.razg-itog-kn { margin-left: auto; flex: none; min-height: 38px; padding: 0 14px; }
.razg-itog h2 { margin: 0 0 6px; font-size: 19px; }
.razg-itog h3 { margin: 14px 0 4px; font-size: 15px; }
.razg-itog ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.razg-zadacha { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; min-height: 40px; }
.razg-zadacha input { width: 20px; height: 20px; margin-top: 2px; flex: none; }
.razg-itog-knopki { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
@media (prefers-reduced-motion: reduce) { .razg-dumaet span { animation: none; } .razg-mik.idyot { transition: none; } }
/* чат с помощником в «Чатах» и карточка действий на подтверждение */
.tip.pomoshnik { background: #0F766E; color: #fff; }
.razg-novyy-chat { width: 100%; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.razg-novyy-chat .pr { color: var(--akcent); }
.razg-pr h3 { margin: 0 0 8px; font-size: 16px; }
.pr-utochnit { margin: -2px 0 10px; line-height: 1.4; }
.pr-d { border-top: 1px solid var(--liniya); padding: 10px 0; display: grid; gap: 8px; }
.pr-d.vykl .pr-polya { opacity: .45; }
.pr-vkl { display: flex; gap: 8px; align-items: center; min-height: 36px; }
.pr-vkl input { width: 20px; height: 20px; flex: none; }
.pr-polya { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pr-pole { display: grid; gap: 3px; font-size: 13px; color: var(--tusk); min-width: 0; }
.pr-pole .pole { margin: 0; font-size: 15px; color: var(--tekst); min-height: 42px; }
.pr-pole:has(textarea), .pr-pole:first-child:has(input:not([type=date])) { grid-column: 1 / -1; }
.pr-podpis { grid-column: 1 / -1; font-weight: 600; line-height: 1.35; }
.razg-pr.gotovo ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.razg-pr.gotovo li.ok { color: var(--ok-tekst, var(--tekst)); }
.razg-pr.gotovo li.ne { color: var(--vozvrat-tekst, #B42318); }
.razg-pr.gotovo li.mimo { color: var(--tusk); }
@media (max-width: 380px) { .pr-polya { grid-template-columns: 1fr; } }

/* лента разговора: последнее сообщение не прячется за нижней панелью */
.razg-lenta > * { scroll-margin-bottom: 250px; scroll-margin-top: 80px; }
.razg-pr a { color: var(--akcent); font-weight: 600; }

/* === Планёрка: запись совещания, протокол, пункты на утверждение === */
.pl-ryad { display: grid; gap: 4px; text-decoration: none; color: inherit; }
.pl-zapis { display: grid; justify-items: center; gap: 6px; padding: 28px 16px; text-align: center; }
.pl-ogon { width: 18px; height: 18px; border-radius: 50%; background: #DC2626; animation: pl-migaet 1.2s ease-in-out infinite; }
.pl-zapis.pauza .pl-ogon { background: #8B918C; animation: none; }
@keyframes pl-migaet { 50% { opacity: .25; transform: scale(.8); } }
.pl-vremya { font-size: 44px; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pl-punkt { display: grid; gap: 8px; }
.pl-punkt.utverzhden { border-left: 4px solid var(--ok); }
.pl-punkt.otklonen { opacity: .6; }
.pl-citata { line-height: 1.4; font-style: italic; }
.pl-knopki { gap: 8px; }
.pl-vopros { display: grid; gap: 10px; }
.pl-vopros b { line-height: 1.35; }
.pl-vopros .vybor button { border-radius: 14px; padding: 9px 14px; }
.pl-hod summary { cursor: pointer; padding: 8px 0; font-weight: 600; min-height: 40px; }
.pl-hod p { margin: 6px 0 10px; line-height: 1.5; }
.pl-itogi { margin: 0; padding-left: 18px; display: grid; gap: 4px; line-height: 1.4; }
.pl-zadachi { display: grid; gap: 8px; }
.pl-zadachi > div { display: grid; gap: 1px; line-height: 1.35; }
@media (prefers-reduced-motion: reduce) { .pl-ogon { animation: none; } }
.pl-kto-srok { display: block; font-size: 14px; font-weight: 700; color: var(--tekst); }

/* === Обучение (простая инструкция по приложению) === */
/* Цвета — только из темы (--kartochka, --tekst, --tusk): в тёмной плитки были белыми со светлым текстом (правка №44). */
/* тело экрана: прокручивается само, нижнее меню остаётся прижатым к низу */
.obuch-telo { flex: 1; min-height: 0; overflow: auto; }
.obuch-vstup { margin: 12px 16px 4px; color: var(--tekst); line-height: 1.5; }
.obuch-plitki { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px 24px; }
.obuch-plitka { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px;
  background: var(--kartochka); box-shadow: var(--ten, 0 1px 3px rgba(60,64,60,.08), 0 6px 16px -10px rgba(60,64,60,.25));
  color: var(--tekst); text-decoration: none; transition: transform .08s ease, box-shadow .12s ease; }
.obuch-plitka:active { transform: scale(.985); }
.obuch-plitka .obuch-e { font-size: 28px; line-height: 1; flex: none; width: 40px; text-align: center; }
.obuch-plitka .obuch-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.obuch-plitka .obuch-t b { font-size: 17px; color: var(--tekst); }
.obuch-plitka .obuch-t small { color: var(--tusk); font-size: 14px; line-height: 1.4; }
.obuch-plitka .str { color: var(--tusk); font-size: 22px; flex: none; }
.obuch-tema { padding: 4px 16px 28px; color: var(--tekst); }
.obuch-shapka { display: flex; align-items: center; gap: 14px; margin: 8px 0 14px; }
.obuch-shapka .obuch-e-big { font-size: 40px; line-height: 1; flex: none; }
.obuch-shapka p { margin: 0; font-size: 17px; line-height: 1.45; }
.obuch-hod { display: flex; gap: 6px; margin: 12px 0 16px; }
.obuch-hod i { flex: 1; height: 5px; border-radius: 3px; background: var(--liniya); }
.obuch-hod i.on { background: var(--akcent-knopka); }
.obuch-shag { display: flex; gap: 12px; align-items: flex-start; }
.obuch-shag p { margin: 3px 0 0; font-size: 18px; line-height: 1.45; font-weight: 500; }
.obuch-nomer { flex: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background: var(--akcent-knopka); color: #fff; font-weight: 700; font-size: 17px; }
.obuch-primer { margin: 16px 0 0; }
.obuch-primer figcaption { font-size: 13px; color: var(--tusk); margin: 0 0 6px 2px; }
.obuch-m { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 18px; background: var(--ekran);
  border: 1.5px dashed var(--liniya); font-size: 14px; line-height: 1.35; pointer-events: none; user-select: none; overflow: hidden; }
.obuch-m-zag { display: flex; align-items: center; gap: 10px; padding: 9px 12px; margin: -12px -12px 0; background: var(--kartochka); border-bottom: 1px solid var(--liniya); }
.obuch-m-zag span { font-size: 24px; line-height: 1; width: 22px; text-align: center; }
.obuch-m-zag b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obuch-m-zag + .obuch-ukaz { margin-top: -4px; }
.obuch-m-vkl { display: flex; margin: -8px -12px 0; background: var(--kartochka); border-bottom: 1px solid var(--liniya); }
.obuch-m-vkl span { flex: 1; text-align: center; padding: 9px 0 7px; font-size: 12px; color: var(--tusk); border-bottom: 3px solid transparent; white-space: nowrap; }
.obuch-m-vkl span.on { color: var(--tekst); font-weight: 600; border-color: var(--akcent); }
.obuch-m-niz { display: flex; margin: 0 -12px -12px; background: var(--kartochka); border-top: 1px solid var(--liniya); }
.obuch-m-niz:first-child { margin-top: -12px; }
.obuch-m-niz span { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 0 9px; font-size: 11.5px; color: var(--tusk); position: relative; }
.obuch-m-niz span i { width: 20px; height: 20px; border-radius: 6px; border: 2px solid currentColor; opacity: .7; }
.obuch-m-niz span.on { color: var(--akcent); font-weight: 700; }
.obuch-m-niz span.on i { opacity: 1; }
.obuch-m-niz em { position: absolute; top: 3px; left: calc(50% + 4px); min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px;
  background: #D64545; color: #fff; font-size: 11px; font-style: normal; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.obuch-m-kart { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--kartochka); border: 1px solid var(--liniya); }
.obuch-m-kart > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.obuch-m-kart small { color: var(--tusk); font-size: 12.5px; }
.obuch-m-kart > span { color: var(--tusk); font-size: 18px; }
.obuch-m-kart em { flex: none; font-style: normal; font-size: 11.5px; font-weight: 600; padding: 3px 8px; border-radius: 9px; background: var(--akcent-tusk); color: var(--akcent); }
.obuch-m-prog u { display: block; height: 6px; border-radius: 3px; background: var(--liniya); margin-top: 5px; text-decoration: none; overflow: hidden; }
.obuch-m-prog s { display: block; height: 100%; background: var(--ok, #3E9B5C); }
.obuch-m-kn { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 6px 12px; border-radius: 11px;
  background: var(--akcent-knopka); color: #fff; font-weight: 600; text-align: center; flex: 1; }
.obuch-m-kn.vtor { background: var(--kartochka); color: var(--tekst); border: 1.5px solid var(--liniya); }
.obuch-m-kn i { width: 14px; height: 14px; border-radius: 50%; flex: none; }
.obuch-m-ryad { display: flex; gap: 8px; }
.obuch-m-ryad .obuch-m-kn { font-size: 13px; padding: 6px; }
.obuch-m-foto { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.obuch-m-foto i, .obuch-m-foto b { aspect-ratio: 1; border-radius: 10px; }
.obuch-m-foto i { background: linear-gradient(135deg, color-mix(in srgb, var(--tusk) 45%, transparent), color-mix(in srgb, var(--tusk) 18%, transparent)); }
.obuch-m-foto b { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1.5px dashed var(--tusk); color: var(--tusk); font-size: 20px; line-height: 1; }
.obuch-m-foto b small { font-size: 11px; font-weight: 500; margin-top: 3px; }
.obuch-m-pole small { display: block; color: var(--tusk); font-size: 12px; margin: 0 0 3px 2px; }
.obuch-m-pole div { padding: 9px 11px; border-radius: 10px; background: var(--kartochka); border: 1.5px solid var(--liniya); }
.obuch-m-str { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 8px 2px; border-bottom: 1px solid var(--liniya); }
.obuch-m-str b { white-space: nowrap; }
.obuch-m-puzyr { align-self: flex-start; max-width: 82%; padding: 8px 12px; border-radius: 14px 14px 14px 4px; background: var(--kartochka); border: 1px solid var(--liniya); }
.obuch-m-puzyr.ya { align-self: flex-end; border-radius: 14px 14px 4px 14px; background: var(--akcent-tusk); border-color: transparent; }
.obuch-m-polosa { padding: 8px 12px; border-radius: 10px; background: var(--zhdyot-fon, #FBF0D5); color: var(--zhdyot-tekst, #6B4E0B); font-weight: 600; text-align: center; }
.obuch-m-tekst { font-weight: 600; font-size: 15px; text-align: center; padding: 4px 0; }
/* куда нажать: обводка и стрелка «сюда» под (у нижних кнопок — над) нужным местом */
.obuch-m .cel { box-shadow: 0 0 0 3px var(--ekran), 0 0 0 6px var(--akcent); }
.obuch-m-foto b.cel { border-style: solid; border-color: var(--akcent); color: var(--akcent); }
.obuch-ukaz { position: relative; height: 34px; margin-top: 2px; }
.obuch-ukaz.vniz { margin: 0 0 2px; }
.obuch-ukaz span { position: absolute; top: 2px; left: clamp(38px, calc((var(--i) + .5) / var(--k) * 100%), calc(100% - 38px)); transform: translateX(-50%); display: flex; align-items: center; gap: 2px;
  color: var(--akcent); font-weight: 700; font-size: 14px; white-space: nowrap; animation: obuch-tyk 1.1s ease-in-out infinite; }
.obuch-ukaz.vniz span { animation-name: obuch-tyk-vniz; }
@keyframes obuch-tyk { 0%, 100% { transform: translate(-50%, 4px); } 50% { transform: translate(-50%, -2px); } }
@keyframes obuch-tyk-vniz { 0%, 100% { transform: translate(-50%, -4px); } 50% { transform: translate(-50%, 2px); } }
@media (prefers-reduced-motion: reduce) { .obuch-ukaz span { animation: none; } }
.obuch-tut { width: 100%; margin-top: 16px; height: auto; padding-top: 8px; padding-bottom: 8px; text-align: center; border-color: var(--akcent); color: var(--akcent); }
:root[data-tema="temnaya"] .knopka.vtor.obuch-tut { border-color: var(--akcent); color: var(--akcent); }
.obuch-tut-pod { margin: 6px 2px 0; font-size: 13px; line-height: 1.4; color: var(--tusk); text-align: center; }
.obuch-nav { display: flex; gap: 10px; margin-top: 22px; }
.obuch-nav .knopka { flex: 1; }
.obuch-nav .knopka.vtor { flex: 0 0 34%; }
.obuch-vozvrat { position: fixed; z-index: 900; left: 50%; bottom: calc(132px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); display: flex; align-items: center;
  border-radius: 22px; background: var(--akcent-knopka); color: #fff; box-shadow: 0 6px 18px -6px rgba(0,0,0,.45); white-space: nowrap; }
.obuch-vozvrat a { color: #fff; text-decoration: none; font-weight: 600; font-size: 15px; padding: 11px 6px 11px 18px; }
.obuch-vozvrat button { border: 0; background: none; color: #fff; font-size: 15px; min-width: 44px; min-height: 44px; opacity: .85; cursor: pointer; }

/* === Окно обновления приложения === */
.sd-obn-fon { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: flex-end; justify-content: center;
  background: rgba(32,36,37,.45); backdrop-filter: blur(2px); padding: 16px; animation: sd-obn-poyav .18s ease; }
@keyframes sd-obn-poyav { from { opacity: 0; } to { opacity: 1; } }
.sd-obn { width: 100%; max-width: 440px; background: var(--kartochka); color: inherit; border-radius: 22px;
  padding: 22px 20px 18px; box-shadow: 0 -4px 24px rgba(32,36,37,.25); animation: sd-obn-vverh .22s ease; }
@keyframes sd-obn-vverh { from { transform: translateY(16px); } to { transform: translateY(0); } }
@media (min-width: 560px) { .sd-obn-fon { align-items: center; } }
.sd-obn-znak { font-size: 36px; line-height: 1; text-align: center; margin-bottom: 6px; }
.sd-obn h2 { margin: 0 0 10px; text-align: center; font-size: 20px; }
.sd-obn-anons { background: var(--fon, #F1F2EF); border-radius: 14px; padding: 12px 14px; margin-bottom: 14px;
  line-height: 1.5; font-size: 15px; max-height: 42vh; overflow: auto; }
.sd-obn-knopki { display: flex; flex-direction: column; gap: 10px; }
.sd-obn-knopki .knopka, .sd-obn-knopki .knopka-vtor { width: 100%; }
.sd-obn-pod { margin: 12px 2px 0; color: var(--tusk); font-size: 13px; line-height: 1.4; text-align: center; }

/* === Проблемы === */
.prob-tochka { width: 14px; height: 14px; border-radius: 50%; flex: none; margin-top: 4px; }
.prob-tochka.kr { background: #D64545; }
.prob-tochka.zh { background: #E8A33D; }
.prob-tochka.esk { background: #E06C2B; }
.prob-tochka.ok { background: #3C9D6E; }
.prob-zag { font-size: 16.5px; line-height: 1.35; }
.prob-karta { cursor: pointer; }
.prob-sti { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.prob-sti.kr { background: rgba(214,69,69,.12); color: #B23A3A; }
.prob-sti.zh { background: rgba(232,163,61,.15); color: #9a6a16; }
.prob-sti.esk { background: rgba(224,108,43,.14); color: #B4551E; }
.prob-sti.ok { background: rgba(60,157,110,.14); color: #2E7D56; }
:root[data-tema="temnaya"] .prob-sti.kr { color: #F2A3A3; }
:root[data-tema="temnaya"] .prob-sti.zh { color: #F0C987; }
:root[data-tema="temnaya"] .prob-sti.esk { color: #F2B089; }
:root[data-tema="temnaya"] .prob-sti.ok { color: #9FD9BC; }
.prob-reshenie { background: rgba(60,157,110,.1); border-radius: 12px; padding: 10px 12px; margin-top: 8px; line-height: 1.45; }

/* === Развитие (план-чеклист, только у главного) === */
.razv-telo { flex: 1; min-height: 0; overflow: auto; padding-bottom: 16px; }
.razv-vstup { margin: 12px 16px; color: var(--tusk); line-height: 1.5; }
.razv-progress { margin: 0 16px 10px; padding: 12px 14px; border-radius: 14px; background: rgba(67,83,159,.1); line-height: 1.45; }
.razv-spisok { display: flex; flex-direction: column; gap: 10px; padding: 4px 16px; }
.razv-etap { border-radius: 16px; background: var(--kartochka); box-shadow: 0 1px 3px rgba(60,64,60,.08), 0 6px 16px -12px rgba(60,64,60,.25); overflow: hidden; border-left: 4px solid transparent; }
.razv-etap.razv-g { border-left-color: #3C9D6E; }
.razv-etap.razv-s { border-left-color: #C2410C; }
.razv-etap.razv-p { border-left-color: #B9BEC2; }
.razv-etap.razv-o { border-left-color: #43539F; }
.razv-shapka { width: 100%; display: flex; align-items: center; gap: 12px; padding: 13px 14px; background: none; border: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.razv-znak { font-size: 20px; line-height: 1; flex: none; }
.razv-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.razv-t b { font-size: 16px; }
.razv-t small { color: var(--tusk); font-size: 13px; line-height: 1.4; }
.razv-chip { flex: none; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.razv-chip-g { background: rgba(60,157,110,.15); color: #2E7D56; }
.razv-chip-s { background: rgba(194,65,12,.14); color: #B23A0E; }
.razv-chip-p { background: rgba(130,137,142,.16); color: #5B6166; }
.razv-chip-o { background: rgba(67,83,159,.14); color: #3A4790; }
.razv-punkty { margin: 0; padding: 0 16px 14px 46px; display: flex; flex-direction: column; gap: 6px; color: var(--tekst); }
.razv-punkty li { line-height: 1.45; }
.razv-resh { display: flex; flex-direction: column; gap: 2px; padding: 4px 16px 24px; }
.razv-r { display: flex; gap: 12px; align-items: flex-start; padding: 11px 12px; border-radius: 12px; line-height: 1.45; }
.razv-r:active { background: rgba(130,137,142,.08); }
.razv-r input { width: 22px; height: 22px; flex: none; margin-top: 1px; accent-color: var(--akcent-knopka, #C2410C); }

/* === Развитие v2: проваливание, вопросы, запись === */
.razv-etap { width: 100%; display: flex; align-items: center; gap: 12px; padding: 13px 14px; text-align: left;
  background: var(--kartochka); border: 0; border-left: 4px solid transparent; border-radius: 16px; color: inherit;
  box-shadow: 0 1px 3px rgba(60,64,60,.08), 0 6px 16px -12px rgba(60,64,60,.25); cursor: pointer; font: inherit; }
.razv-etap:active { transform: scale(.99); }
.razv-pravo { display: flex; align-items: center; gap: 8px; flex: none; }
.razv-pravo .str { color: var(--tusk); font-size: 20px; }
.razv-nado { flex: none; font-size: 12.5px; font-weight: 700; color: #B23A0E; background: rgba(194,65,12,.12); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.razv-otv { flex: none; font-size: 12.5px; color: var(--tusk); background: rgba(130,137,142,.14); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.razv-etap-shapka { display: flex; gap: 12px; align-items: center; margin: 12px 16px; padding: 12px 14px; border-radius: 14px; background: var(--kartochka); border-left: 4px solid transparent; box-shadow: 0 1px 3px rgba(60,64,60,.08); }
.razv-etap-shapka.razv-g { border-left-color: #3C9D6E; } .razv-etap-shapka.razv-s { border-left-color: #C2410C; }
.razv-etap-shapka.razv-p { border-left-color: #B9BEC2; } .razv-etap-shapka.razv-o { border-left-color: #43539F; }
.razv-etap-shapka > div { display: flex; flex-direction: column; gap: 6px; }
.razv-etap-shapka b { line-height: 1.4; } .razv-etap-shapka .razv-chip { align-self: flex-start; }
.razv-punkty-spisok { display: flex; flex-direction: column; gap: 8px; padding: 4px 16px 16px; }
.razv-punkt { display: flex; align-items: center; gap: 10px; padding: 14px; border-radius: 14px; background: var(--kartochka);
  box-shadow: 0 1px 3px rgba(60,64,60,.08); cursor: pointer; position: relative; overflow: hidden; -webkit-user-select: none; user-select: none; }
.razv-punkt .str { color: var(--tusk); font-size: 20px; flex: none; }
.razv-punkt-t { flex: 1; line-height: 1.45; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.razv-punkt .razv-nado, .razv-punkt .razv-otv { align-self: flex-start; }
.razv-punkt.uderzh::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--akcent-knopka, #C2410C); animation: razv-hold 3s linear forwards; }
@keyframes razv-hold { to { width: 100%; } }
.razv-punkt-bol { font-size: 17px; line-height: 1.45; }
.razv-vopros { margin: 10px 16px; padding: 12px 14px; border-radius: 14px; background: rgba(194,65,12,.08); border: 1px solid rgba(194,65,12,.25); }
.razv-vopros-z { font-weight: 700; color: #B23A0E; font-size: 13.5px; }
.razv-vopros p { margin: 6px 0 0; line-height: 1.5; }
.razv-otvety { display: flex; flex-direction: column; gap: 10px; padding: 0 16px; }
.razv-z { background: var(--kartochka); border-radius: 14px; padding: 12px 14px; box-shadow: 0 1px 3px rgba(60,64,60,.08); }
.razv-z-verh { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.razv-z-kto { font-size: 12.5px; color: var(--tusk); }
.razv-z-del { background: none; border: 0; color: var(--tusk); font-size: 16px; cursor: pointer; min-height: 32px; min-width: 32px; }
.razv-play { display: inline-flex; align-items: center; gap: 6px; background: rgba(67,83,159,.1); color: #3A4790; border: 0; border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 14px; cursor: pointer; margin-bottom: 8px; }
.razv-z-tekst { line-height: 1.5; }
.razv-niz { display: flex; flex-direction: column; gap: 10px; }
.razv-niz .knopka > svg { vertical-align: -4px; margin-right: 6px; }
/* Запись голоса — плашкой внизу поверх кнопок, экран за ней листается и читается (правка №81) */
.razv-zapis-sloy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 2100; display: flex; justify-content: center; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); pointer-events: none; }
.razv-zapis { pointer-events: auto; width: 100%; max-width: 440px; background: var(--kartochka); border-radius: 18px; padding: 12px 14px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px 10px; box-shadow: 0 -4px 24px rgba(32,36,37,.3); }
.razv-zapis-tochka { width: 14px; height: 14px; border-radius: 50%; background: #D64545; animation: razv-puls 1s ease-in-out infinite; }
@keyframes razv-puls { 0%,100% { opacity: 1; } 50% { opacity: .3; } }
.razv-zapis-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.razv-zapis-t small { color: var(--tusk); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.razv-zapis-vremya { font-size: 20px; font-variant-numeric: tabular-nums; }
.razv-zapis-knopki { grid-column: 1 / -1; display: flex; gap: 10px; } .razv-zapis-knopki .knopka, .razv-zapis-knopki .knopka.vtor { flex: 1; }
/* Развитие в тёмной теме: надписи на плашках светлее */
:root[data-tema="temnaya"] .razv-chip-g { color: #9FD9BC; }
:root[data-tema="temnaya"] .razv-chip-s, :root[data-tema="temnaya"] .razv-nado, :root[data-tema="temnaya"] .razv-vopros-z { color: #F2B089; }
:root[data-tema="temnaya"] .razv-chip-p { color: var(--tusk); }
:root[data-tema="temnaya"] .razv-chip-o, :root[data-tema="temnaya"] .razv-play { color: #B4BEF0; }

/* === «Мой день»: утренняя отметка и закрытие дня объекта (этап 2, 11.10.2026) === */
.den-zag { font-size: 17px; line-height: 1.3; }
.den-razdel { margin: 6px 2px 0; font-size: 15px; color: var(--tusk); font-weight: 600; }
.den-otmetka, .den-karta { display: flex; flex-direction: column; gap: 10px; }
.den-spisok { display: flex; flex-direction: column; gap: 4px; }
.den-galka { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 4px 2px; font-size: 16px; color: var(--tekst); cursor: pointer; }
.den-galka input { width: 24px; height: 24px; flex: none; accent-color: var(--akcent-knopka); }
.den-vyh { border-top: 1px solid var(--liniya, rgba(128,128,128,.25)); margin-top: 4px; padding-top: 8px; }
.den-sti { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.den-sti.ok { background: rgba(22,163,74,.14); color: #15803D; }
.den-sti.zh { background: rgba(217,119,6,.16); color: #B45309; }
.den-sti.kr { background: rgba(220,38,38,.14); color: #B91C1C; }
.den-sti.net { background: rgba(128,128,128,.16); color: var(--tusk); }
:root[data-tema="temnaya"] .den-sti.ok { color: #4ADE80; }
:root[data-tema="temnaya"] .den-sti.zh { color: #FBBF24; }
:root[data-tema="temnaya"] .den-sti.kr { color: #F87171; }
.den-otsrochki { gap: 8px; flex-wrap: wrap; }
.den-otsrochki .knopka { flex: 1 1 140px; }
.den-ssylka { color: var(--akcent); font-size: 14px; text-decoration: none; align-self: flex-start; padding: 6px 0; }

/* «Развитие»: мой вопрос по ходу работы, на который уже ответили */
.razv-vopros-zakryt { opacity: .6; }
.den-raboty { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.den-raboty li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--tekst); }
.den-raboty b { white-space: nowrap; }
.den-front { display: flex; flex-direction: column; gap: 8px; padding-top: 10px; border-top: 1px solid var(--liniya); }
.den-podzag { font-size: 14px; color: var(--tusk); font-weight: 600; }
.den-raboty li { align-items: center; }
.den-raboty li span { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.den-raboty li small { color: var(--tusk); font-size: 12px; }
.den-raboty b.den-net { color: var(--tusk); font-weight: 500; }
.den-zadachi { display: flex; flex-direction: column; gap: 6px; }
.den-zadacha { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 10px; background: var(--fon); color: var(--tekst); font-size: 14px; text-decoration: none; }
.den-zadacha span { min-width: 0; flex: 1; }
.den-zadacha b { white-space: nowrap; font-weight: 500; color: var(--tusk); font-size: 13px; }
.den-zadacha b.kr { color: var(--kr, #DC2626); font-weight: 600; }
.den-ubrat { flex: none; width: 44px; height: 44px; margin: -8px -8px -8px 0; border: 0; background: none; color: var(--tusk); font-size: 16px; cursor: pointer; }
.den-forma { display: flex; flex-direction: column; gap: 8px; }
/* «Развитие»: переписка по пункту — моё «понял так-то» и «читаю ваш ответ» */
.razv-vopros p, .razv-ponyal p { white-space: pre-line; }
.razv-ponyal { margin: 0 16px; padding: 12px 14px; border-radius: 14px; background: var(--kartochka); border: 1px solid var(--liniya); color: var(--tekst); }
.razv-ponyal p { margin: 6px 0 0; }
.razv-otvety .razv-vopros, .razv-otvety .razv-ponyal, .razv-otvety .razv-chitayu { margin: 0; }
.razv-chitayu { margin: 0 16px; color: var(--tusk); font-size: 14px; }


/* === Заказчик === только смотрит: кнопок создания, действий и чатов у него нет (сервер их и не примет) */
:root[data-rol="zakazchik"] .ekran > .niz,
:root[data-rol="zakazchik"] .knopka-chata { display: none; }
:root[data-rol="zakazchik"] .ekran > .niz:has(#zam-reestr) { display: block; }      /* реестр замечаний — можно */
:root[data-rol="zakazchik"] .niz:has(#zam-reestr) a.krug-plyus,
:root[data-rol="zakazchik"] #zam-vypolnenie,
:root[data-rol="zakazchik"] .zam-deystviya,
:root[data-rol="zakazchik"] #zam-dob-foto { display: none; }


/* === Связи замечаний и задач === */
.svyazi-blok{border-left:4px solid var(--akcent);display:flex;flex-direction:column;gap:2px}
.svyazi-blok>b{font-weight:600;margin-bottom:4px}
.svyaz{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-top:1px solid var(--liniya, #EDEEEB);color:inherit;text-decoration:none}
.svyaz-chto{font-size:15px;line-height:1.3;overflow-wrap:anywhere}


/* === Уведомления: часы === */
.uv-blok{display:flex;flex-direction:column;gap:10px}
.uv-chasy{align-items:center;gap:8px}
.uv-chasy .pole{flex:1;min-width:0}
.uv-galka{display:flex;align-items:center;gap:10px;font-size:16px;min-height:44px}
.uv-galka input{width:22px;height:22px;flex:none}
.uv-chel{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--liniya, #EDEEEB)}
.uv-chel:first-child{border-top:0}


/* === Лента как чек-лист === */
.lenta-filtr{display:flex;align-items:center;gap:8px;padding:12px 14px 0}
.lenta-filtr .melko{margin-left:auto}
.lenta-obekty{display:flex;gap:8px;padding:10px 14px 2px;overflow-x:auto;scrollbar-width:none}
.lenta-obekty::-webkit-scrollbar{display:none}
.lenta-obekty .pill{flex:none;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;display:block}
.lenta-chek{display:flex;align-items:stretch}
.lenta-chek>.chat-ryad{flex:1;min-width:0;padding-left:6px}
.lenta-galka{flex:none;width:52px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.lenta-galka::before{content:"";width:26px;height:26px;border-radius:50%;border:2px solid var(--akcent);box-sizing:border-box;transition:background .15s}
.lenta-galka:active::before,.lenta-galka:disabled::before{background:var(--akcent-knopka)}
.st-tochka{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--zhdyot, #D9A21B);vertical-align:middle}
.st-tochka.kr{background:var(--oshibka, #C0392B)}
.chat-ryad .tip.problema{background:#D97706}


/* === Рабочий === чатов у него нет; остальное на его экранах — его собственные кнопки */
/* кнопка чата рабочему видна: она есть только в делах, где он ответственный */

/* === Объёмы рабочих: подтверждение бригадиром === */
.obem-blok{border-left:4px solid var(--akcent);display:flex;flex-direction:column;gap:8px}
.obem-povtor{background:var(--vozvrat-fon);color:var(--vozvrat-tekst);border-radius:10px;padding:8px 10px;font-size:14px;line-height:1.35}
.obem-plashka{margin:0 0 10px;background:var(--zhdyot-fon, #FFF4D6);color:var(--zhdyot-tekst, #6B4E00);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.35}

/* Развитие: запись сохранена, но не расшифрована — не потеряна, можно повторить */
.razv-nerassh { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(232,163,61,.12); line-height: 1.45; }
.razv-nerassh span { font-size: 14px; color: #8a5a10; }
:root[data-tema="temnaya"] .razv-nerassh span { color: #F0C987; }
.razv-nerassh .knopka { align-self: flex-start; }

/* === Рабочие объекта, журналы ТБ, история действий (rabochie.js) === */
.kartochka.rb-karta{display:flex;flex-direction:row;align-items:center;gap:12px;text-decoration:none;color:inherit}
.rb-sr,.ist-sr{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rb-ok{color:var(--ok)}
.rb-net{color:var(--oshibka,#B42318)}
.rb-zhurnaly{display:flex;flex-direction:column;gap:4px}
.rb-zh{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:6px 0;cursor:pointer}
.rb-zh input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--akcent-knopka)}
.rb-zh>span{display:flex;flex-direction:column;gap:2px}
.kartochka.ist-ryad{display:flex;flex-direction:row;gap:12px;align-items:flex-start;text-decoration:none;color:inherit}
.ist-vr{flex:none;color:var(--tusk);min-width:44px}

/* === Отчёт прораба в конце дня (otchet-proraba.js) === */
.op-prob,.op-novaya,.op-nov,.op-sdan{display:flex;flex-direction:column;gap:8px}
.op-prob a{color:inherit;text-decoration:none}
.op-stroka{display:block;color:inherit;text-decoration:none;padding:4px 0}

/* === Помещения объекта и QR-коды (pomeshcheniya.js) === */
.kartochka.pm-ryad{display:flex;flex-direction:row;align-items:center;gap:12px;text-decoration:none;color:inherit;min-height:52px}
.pm-nomer{flex:none;min-width:46px;font-weight:600;color:var(--akcent)}
.pm-nazv{flex:1;min-width:0}
.pm-forma{display:flex;flex-direction:column;gap:10px}
.pm-forma label{display:flex;flex-direction:column;gap:4px;min-width:0}

/* === Сканер кода помещения и карточка помещения (pomeshcheniya.js) === */
.shapka .menyu-knopka{margin-left:auto;flex:none}
.shapka-glavnaya .verh h1{flex:1;min-width:0}
[data-ekran="menyu"] .menyu-knopka,[data-ekran="vhod"] .menyu-knopka{display:none}
.menyu-knopka .ava-mal{width:30px;height:30px;border-radius:32%;background:var(--akcent-knopka);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}
/* сканер — круглая приподнятая кнопка по центру нижнего меню */
.nav-niz{overflow:visible}
.nav-niz .nav-pusto{flex:1;min-width:0}
.nav-niz .ikonka svg{width:24px;height:24px;flex:none}
.nav-niz a.nav-qr{color:var(--tekst);font-weight:600}
.nav-niz .qr-krug{width:52px;height:52px;margin-top:-20px;border-radius:50%;background:var(--akcent-knopka);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px color-mix(in srgb,var(--akcent-knopka) 45%,transparent),0 0 0 4px var(--kartochka,#fff)}
.nav-niz .qr-krug svg{width:28px;height:28px}
.nav-niz a.nav-qr:active .qr-krug{transform:scale(.94)}
.sk-okno{position:relative;border-radius:16px;overflow:hidden;background:#111;aspect-ratio:3/4;max-height:64vh;margin:0 auto}
.sk-okno video{width:100%;height:100%;object-fit:cover;display:block}
.sk-ramka{position:absolute;inset:14%;border:3px solid #fff;border-radius:18px;box-shadow:0 0 0 100vmax rgba(0,0,0,.35);pointer-events:none}
.sk-niz{position:sticky;bottom:0;z-index:5;display:flex;justify-content:center;padding:10px 0}
.sk-galereya{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border-radius:14px;background:var(--kartochka);border:1px solid var(--liniya);box-shadow:0 4px 14px rgba(0,0,0,.18);font-weight:600;cursor:pointer}
.pm-deystviya{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pm-deystviya .knopka{min-height:64px;flex-direction:column;gap:2px;text-align:center}
.kartochka.pm-zapis{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.pm-zapis.zakryta{opacity:.6}
.pm-foto-setka{margin-bottom:8px}
.pm-foto-setka .foto{position:relative;padding:0;border:0;background:transparent;cursor:pointer}
.pm-foto-znak{position:absolute;left:4px;bottom:4px;font-size:12px;line-height:1;padding:3px 6px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff}

/* === Шахматка: помещения × этапы работ (shahmatka.js) === */
.shm-okno{overflow:auto;border-radius:14px;background:var(--kartochka,#fff);box-shadow:var(--ten);max-height:70vh}
table.shm{border-collapse:separate;border-spacing:0;font-size:13px}
.shm th,.shm td{padding:3px;border-bottom:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}
.shm thead th{position:sticky;top:0;z-index:2;background:var(--kartochka,#fff);vertical-align:bottom}
.shm .shm-pom{position:sticky;left:0;z-index:1;background:var(--kartochka,#fff);text-align:left;font-weight:400;min-width:128px;max-width:150px;padding:6px 8px}
.shm thead .shm-pom{z-index:3;color:var(--tusk)}
.shm .shm-pom a{color:inherit;text-decoration:none;display:block;line-height:1.25}
.shm .shm-pom small{display:block;color:var(--tusk);font-size:11px}
.shm .shm-st{height:118px;min-width:40px;font-weight:500}
.shm .shm-st span{writing-mode:vertical-rl;transform:rotate(180deg);max-height:112px;overflow:hidden;line-height:1.15;text-align:left;display:inline-block}
.shm-gruppa th{position:sticky;left:0;text-align:left;font-size:12px;color:var(--tusk);padding:8px 8px 4px;background:color-mix(in srgb,var(--tusk) 8%,var(--kartochka,#fff))}
.shm-kl{width:36px;height:36px;border-radius:9px;border:1.5px solid color-mix(in srgb,var(--tusk) 35%,transparent);background:transparent;color:#fff;font-size:17px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-style:normal}
.shm-kl.v_rabote{background:#E0A100;border-color:#E0A100}
.shm-kl.gotovo{background:#2E9E5B;border-color:#2E9E5B}
.shm-kl.prosrochen{box-shadow:0 0 0 2px #D43C2E}
.shm-kl:disabled{cursor:default;opacity:1}
.shm-pusto{background:repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in srgb,var(--tusk) 10%,transparent) 5px 6px)}
.shm-legenda{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;font-size:13px;color:var(--tusk)}
.shm-legenda span{display:inline-flex;align-items:center;gap:6px}
.shm-legenda .shm-kl{width:22px;height:22px;font-size:12px;border-radius:6px;cursor:default}
.shm-spisok{display:flex;flex-direction:column;max-height:46vh;overflow:auto}
.shm-gde{margin:8px 0 2px}
.shm-galka{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;min-height:44px}
.shm-galka input{width:22px;height:22px;flex:none;accent-color:var(--akcent-knopka)}
.shm-galka span{flex:1;min-width:0}
.shm-galka small{color:var(--tusk);font-size:12px;text-align:right}
.kartochka.shm-etap{display:flex;flex-direction:column;gap:6px}
.shm-etap-verh{display:flex;align-items:center;gap:8px}
.shm-dop{font-size:12px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--akcent) 14%,transparent);color:var(--akcent)}
.shm-krasno{color:#D43C2E}
.shm-kl small{font-size:11px;font-weight:700}
.shm-proc{margin-left:auto;font-weight:600;color:#B07F00}
:root[data-tema="temnaya"] .shm-proc{color:#F0C24B}
.shm-chipy{display:flex;gap:6px}
.shm-chipy button{flex:1;min-height:36px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--tusk) 30%,transparent);background:transparent;color:var(--tusk);font:inherit;font-size:13px;cursor:pointer}
.shm-chipy button[aria-pressed="true"]{background:#E0A100;border-color:#E0A100;color:#fff;font-weight:600}
/* одна работа — весь объект */
.shr-vybor{align-items:stretch}
.shr-vybor .knopka{flex:none;width:44px;font-size:20px;padding:0}
.shr-polosa{height:6px;border-radius:3px;background:color-mix(in srgb,var(--tusk) 18%,transparent);overflow:hidden;margin-bottom:6px}
.shr-polosa i{display:block;height:100%;background:#2E9E5B;border-radius:3px}
.shr-blok{display:flex;flex-direction:column;gap:5px}
.shr-ryad{display:flex;gap:6px;align-items:flex-start}
.shr-etazh{flex:none;width:38px;min-height:52px;border:0;background:transparent;color:var(--tusk);font:inherit;font-weight:700;font-size:13px;cursor:pointer;border-radius:8px}
.shr-etazh:active{background:color-mix(in srgb,var(--tusk) 14%,transparent)}
.shr-kletki{display:flex;flex-wrap:wrap;gap:5px;flex:1;min-width:0}
.shr-kl{width:54px;height:52px;border-radius:9px;border:1.5px solid color-mix(in srgb,var(--tusk) 28%,transparent);background:var(--kartochka);color:var(--tekst);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;cursor:pointer;line-height:1.1;overflow:hidden}
.shr-kl .shr-nomer{font-size:11px;color:var(--tusk);max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:clip}
.shr-kl b{font-size:13px;font-weight:700;min-height:14px}
.shr-kl small{font-size:10.5px;color:var(--akcent);display:flex;align-items:center;gap:2px;white-space:nowrap}
.shr-kl.v_rabote{background:#F8D879;border-color:#E0A100;color:#3D2E00}
.shr-kl.v_rabote .shr-nomer,.shr-kl.v_rabote small{color:#5C4500}
.shr-kl.gotovo{background:#46D483;border-color:#2E9E5B;color:#0B3D21}
.shr-kl.gotovo .shr-nomer{color:#0B3D21}
.shr-kl.prosrochen small{color:#C0392B;font-weight:700}
.shr-tochka{width:6px;height:6px;border-radius:50%;background:#D43C2E;display:inline-block}
.shr-kl.vybr{outline:3px solid var(--akcent);outline-offset:-1px;box-shadow:0 0 0 2px var(--kartochka) inset}
.shr-kl{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.shr-kl{position:relative}
.shz-metka{position:absolute;top:1px;font-style:normal;font-size:9.5px;font-weight:700;line-height:13px;height:13px;min-width:13px;padding:0 2px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:1px;pointer-events:none}
.shz-metka.zam{right:1px;background:#D43C2E;color:#fff}
.shz-metka.zad{left:1px;background:#2F6FD6;color:#fff}
.shz-stroka{display:flex;gap:4px;margin-top:2px}
.shz-stroka .shz-metka{position:static}
.shr-vedem .shr-kl{touch-action:none}
.shr-niz[hidden]{display:none}
.shr-sbros{display:block;min-height:34px;padding:0 4px;margin-top:4px}
.shr-proc{display:flex;gap:6px}
.shr-proc .knopka{flex:1;width:auto;padding-left:0;padding-right:0}
.kartochka.shm-plan-stroka{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;text-align:left}
.shm-plan-stroka a{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none}
.shm-plan-stroka .knopka{flex:none;width:auto;margin:0}
.shm-plan-rabota{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}
.shm-plan-rabota:first-of-type{border-top:0}
.shm-tri{display:flex;gap:6px}
.shm-tri button{flex:1;min-height:44px;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--tusk) 35%,transparent);background:transparent;color:var(--tekst);font:inherit;font-size:14px;cursor:pointer}
.shm-tri button[aria-pressed="true"]{color:#fff;font-weight:600;background:var(--tusk);border-color:var(--tusk)}
.shm-tri button.v_rabote[aria-pressed="true"]{background:#E0A100;border-color:#E0A100}
.shm-tri button.gotovo[aria-pressed="true"]{background:#2E9E5B;border-color:#2E9E5B}
.shm-kto{display:flex;flex-direction:column;gap:8px}
.shm-kto label{display:flex;flex-direction:column;gap:4px}

/* === Объёмы по помещениям и проверка на месте (obemy-pom.js) === */
.kartochka.ob-rabota{display:flex;flex-direction:column;gap:6px}
.ob-verh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ob-verh b{min-width:0}
.ob-kol{flex:none;font-weight:700;color:var(--akcent);white-space:nowrap}
.ob-metki{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ob-metka{font-size:13px;padding:3px 9px;border-radius:999px;line-height:1.3}
.ob-metka.ok{background:color-mix(in srgb,#2E9E5B 16%,transparent);color:#1F7A44}
.ob-metka.ploho{background:color-mix(in srgb,#D43C2E 14%,transparent);color:#C0392B}
.ob-metka.zhdet{background:color-mix(in srgb,var(--tusk) 14%,transparent);color:var(--tusk)}
:root[data-tema="temnaya"] .ob-metka.ok{color:#6FD39A}
:root[data-tema="temnaya"] .ob-metka.ploho{color:#FF8A7D}
.ob-forma{display:flex;flex-direction:column;gap:8px}
.ob-forma label{display:flex;flex-direction:column;gap:4px}
.ob-pom{display:flex;flex-direction:column;gap:5px;padding:9px 0 3px;border-top:1px solid color-mix(in srgb,var(--tusk) 18%,transparent);text-decoration:none;color:inherit}
.ob-pom-verh{display:flex;justify-content:space-between;gap:10px}
.ob-pom small{color:var(--tusk)}
.rzb-stroka{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}
.rzb-stroka span{flex:1;min-width:0}
.rzb-stroka small{color:var(--tusk)}
.rzb-stroka .rzb-pole{flex:none;width:96px;text-align:right}
.rzb-itog{margin:4px 0 8px}
.kartochka.ob-razb-ssylka{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.ob-pom-verh b{flex:none;white-space:nowrap}

/* === Приёмка объёмов ПТО: очередь и сверка с замером (priemka.js) === */
.kartochka.pr-otchet{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.pr-otchet small{color:var(--tusk);font-weight:400}
.kartochka.pr-rabota{display:flex;flex-direction:column;gap:8px}
.pr-ryad{display:flex;align-items:flex-end;gap:14px}
.pr-sdano{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.pr-sdano b{font-size:20px;line-height:44px}
.pr-zamer{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.pr-zamer .pole{font-size:20px;font-weight:700}

/* === Документы и КС: полосы по стадиям, комплекты (dokumenty.js) === */
.kartochka.dk-obshchiy{display:flex;flex-direction:row;align-items:center;gap:14px}
.dk-krug{flex:none;width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;background:var(--akcent-knopka)}
.kartochka.dk-blok{display:flex;flex-direction:column;gap:10px}
details.dk-blok summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;min-height:32px;align-items:center}
details.dk-blok summary::-webkit-details-marker{display:none}
details.dk-blok summary span{color:var(--tusk);white-space:nowrap}
.dk-polosa{display:flex;flex-direction:column;gap:4px}
.dk-podpis{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.dk-shkala{height:10px;border-radius:999px;background:color-mix(in srgb,var(--tusk) 18%,transparent);overflow:hidden}
.dk-shkala i{display:block;height:100%;border-radius:999px;background:#2E9E5B}
.dk-polosa.smr .dk-shkala i{background:var(--akcent-knopka)}
.dk-otstaet{font-size:12px;color:#C0392B}
:root[data-tema="temnaya"] .dk-otstaet{color:#FF8A7D}
.kartochka.dk-rash{display:flex;flex-direction:column;gap:6px;border-left:4px solid #D43C2E}
.kartochka.dk-komplekt{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}
.dk-shagi{display:flex;gap:4px}
.dk-shagi i{flex:1;height:6px;border-radius:999px;background:color-mix(in srgb,var(--tusk) 22%,transparent)}
.dk-shagi i.on{background:#2E9E5B}
.dk-shagi.bolshie{margin:10px 0 8px}
.dk-shagi.bolshie i{height:9px}
.kartochka.dk-ostatok{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px}
.dk-ostatok b{flex:none;white-space:nowrap}
.dk-stroka{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;min-height:48px}
.dk-stroka [type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--akcent-knopka)}
.dk-stroka span{flex:1;min-width:0}
.dk-stroka .dk-kol{width:84px;flex:none;text-align:right}
.dk-stroka small{flex:none;min-width:24px;color:var(--tusk)}
.dk-shag{display:flex;flex-direction:column;gap:2px;padding:8px 2px;border-bottom:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}

/* === Сводка по объектам: столбики стадий, деньги, раскрытие (svodka.js) === */
.kartochka.sv-obekt,.kartochka.sv-blok{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit}
.sv-verh{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.sv-procent{font-size:22px;font-weight:700;color:var(--akcent);flex:none}
.sv-stolbiki{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;align-items:end;height:92px}
.sv-stolbiki span{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:2px}
.sv-stolbiki i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:#2E9E5B;order:2;flex:none}
.sv-stolbiki span.smr i{background:var(--akcent-knopka)}
.sv-stolbiki b{font-size:13px;order:1}
.sv-stolbiki small{font-size:10px;color:var(--tusk);order:3;white-space:nowrap}
.sv-dengi{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.sv-dengi span{display:flex;flex-direction:column;min-width:0}
.sv-dengi small{color:var(--tusk);font-size:12px}
.sv-krasno{color:#C0392B}
:root[data-tema="temnaya"] .sv-krasno{color:#FF8A7D}
details.sv-blok summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;min-height:32px;align-items:center}
details.sv-blok summary::-webkit-details-marker{display:none}
details.sv-blok summary span{color:var(--tusk);white-space:nowrap}
.sv-rabota{display:flex;flex-direction:column;gap:2px;padding:7px 0;border-top:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}
.kartochka.sv-ssylka{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;color:inherit;min-height:48px}
.kartochka.sv-komplekt{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.sv-grafik{width:100%;height:auto;display:block}
.sv-grafik text{font-size:9px;fill:var(--tusk)}
.sv-grafik .sv-setka{stroke:color-mix(in srgb,var(--tusk) 22%,transparent);stroke-width:1}
.sv-legenda{display:grid;grid-template-columns:1fr;gap:4px;font-size:13px}
.sv-legenda span{display:flex;align-items:center;gap:6px;min-width:0}
.sv-legenda b{margin-left:auto;white-space:nowrap}
.sv-legenda i{width:10px;height:10px;border-radius:3px;flex:none}

/* === Заказчик с правом действий: «Новое замечание», «Новая задача» и их формы (пункт 6.1) === */
:root[data-rol="zakazchik"][data-zak~="zamechaniya_dobavlyat"] .niz:has(#zam-reestr) a.krug-plyus[href^="#zamechanie-novoe"],
:root[data-rol="zakazchik"][data-zak~="zamechaniya_dobavlyat"] .ekran > .niz:has(a[href^="#zamechanie-novoe"]),
:root[data-rol="zakazchik"][data-zak~="zamechaniya_dobavlyat"] [data-ekran="zamechanie-novoe"] > .niz,
:root[data-rol="zakazchik"][data-zak~="zadachi_stavit"] .ekran > .niz:has(a[href^="#zadacha-novaya"]),
:root[data-rol="zakazchik"][data-zak~="zadachi_stavit"] [data-ekran="zadacha-novaya"] > .niz { display: flex; }

/* === Планёрка: разбор по ходу записи — вопросы «обсудите сейчас» и «уже разобрано» === */
#pl-po-hodu{display:flex;flex-direction:column;gap:10px}
.kartochka.pl-hod-voprosy{display:flex;flex-direction:column;gap:8px;border-left:4px solid var(--akcent-knopka)}
.pl-hod-vopros{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:4px 0}
.pl-hod-vopros input{width:24px;height:24px;flex:none;margin-top:2px;accent-color:var(--akcent-knopka)}
.pl-hod-vopros span{flex:1;min-width:0;font-size:17px;line-height:1.35}
.pl-hod-vopros small{display:block;font-size:13px;color:var(--tusk);margin-top:2px}
.pl-hod-vopros.gotov span{color:var(--tusk);text-decoration:line-through}
.kartochka.pl-hod-razobrano{display:flex;flex-direction:column;gap:6px}
.pl-hod-razobrano ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.pl-hod-niz{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}

/* === Инструмент объекта: выдача и возврат (instrument.js) === */
.kartochka.in-ryad{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}
.in-ryad small{color:var(--tusk);font-weight:400}
.in-verh{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.in-komu{font-size:17px}
.kartochka.in-ryad.ne-sdan{border-left:4px solid #D43C2E}
.in-krasno{color:#C0392B}
:root[data-tema="temnaya"] .in-krasno{color:#FF8A7D}
.in-istoriya{display:flex;flex-direction:column;gap:2px;padding:8px 2px;border-bottom:1px solid color-mix(in srgb,var(--tusk) 18%,transparent)}

/* === Склад объекта: материалы, остатки, движения (sklad.js) === */
.kartochka.sk-ryad{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;min-height:52px}
.sk-nazv{display:flex;flex-direction:column;gap:2px;min-width:0}
.sk-nazv small{color:var(--tusk);font-size:13px}
.sk-ost{flex:none;white-space:nowrap;color:var(--akcent)}
.sk-ryad.net .sk-ost{color:#C0392B}
.kartochka.sk-lenta{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px}
.sk-dv{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--tusk) 16%,transparent)}
.sk-dv:last-child{border-bottom:0}
.sk-dv span{flex:1;min-width:0}
.sk-dv small{display:block;color:var(--tusk);font-size:12px}
.sk-znak{flex:none;min-width:84px;white-space:nowrap}
.sk-znak.prihod,.sk-znak.vozvrat{color:#1F7A44}
.sk-znak.vydacha,.sk-znak.spisanie{color:#C0392B}
:root[data-tema="temnaya"] .sk-znak.prihod,:root[data-tema="temnaya"] .sk-znak.vozvrat{color:#6FD39A}
:root[data-tema="temnaya"] .sk-znak.vydacha,:root[data-tema="temnaya"] .sk-znak.spisanie,:root[data-tema="temnaya"] .sk-ryad.net .sk-ost{color:#FF8A7D}
.kartochka.sk-kart{display:flex;flex-direction:column;gap:6px}
.sk-bolshoy{font-size:30px;font-weight:700;color:var(--akcent)}

/* === Заявки на материалы и снабженец (zayavki.js) === */
.kartochka.zv-ryad{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;border-left:4px solid transparent}
.zv-ryad.st-soglasovanie,.zv-kart.st-soglasovanie{border-left-color:#D97706}
.zv-ryad.st-novaya,.zv-kart.st-novaya{border-left-color:var(--akcent-knopka)}
.zv-ryad.st-v_rabote,.zv-kart.st-v_rabote{border-left-color:#1D6F8C}
.zv-ryad.st-privezeno,.zv-kart.st-privezeno{border-left-color:#1F7A44}
.zv-ryad.st-otkazano,.zv-kart.st-otkazano{border-left-color:#C0392B}
.kartochka.zv-kart{display:flex;flex-direction:column;gap:8px;border-left:4px solid transparent}
.zv-status{flex:none;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--tusk) 14%,transparent);white-space:nowrap}
.zv-status.st-soglasovanie{background:#FDEBC8;color:#8A4B00}
.zv-status.st-v_rabote{background:#D6ECF3;color:#0F4C61}
.zv-status.st-privezeno{background:#D7F0E0;color:#17603A}
.zv-status.st-otkazano{background:#FADBD8;color:#8E2B20}
.zv-metki{display:flex;flex-wrap:wrap;gap:6px}
.zv-metka{font-size:12px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--tusk) 12%,transparent)}
.zv-metka.ogon{background:#FDE3D3;color:#9A3412}
.zv-metka.krasno{background:#FADBD8;color:#8E2B20}
.zv-srok-b{font-size:17px}
.zv-otkaz{padding:10px 12px;border-radius:12px;background:#FADBD8;color:#7B241C;line-height:1.4}
.zv-otkaz.zhdet{background:#FDEBC8;color:#7A4300}
.kartochka.zv-trevoga{background:#FADBD8;color:#7B241C}
.kartochka.zv-pozicii{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:10px}
.zv-poz{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--tusk) 16%,transparent)}
.zv-poz .ryad b:first-child{min-width:0}
.zv-cena-ryad{display:flex;align-items:center;gap:10px;margin-top:6px}
.zv-cena-ryad span{flex:1;min-width:0}
.zv-cena-ryad .pole{width:120px;flex:none}
.zv-plus{color:#1F7A44}
.zv-stroka{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px dashed color-mix(in srgb,var(--tusk) 22%,transparent)}
.zv-stroka:last-child{border-bottom:0}
#zv-stroki{display:flex;flex-direction:column}
.zv-podskazki{display:flex;flex-direction:column;gap:4px}
.zv-podskazka{display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--akcent) 35%,transparent);background:color-mix(in srgb,var(--akcent) 7%,transparent);color:inherit;font:inherit;min-height:44px}
.zv-podskazka small{color:var(--tusk);font-size:12px}
.kartochka.zv-svod,.zv-ekon-setka{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zv-svod span,.zv-ekon-setka span{display:flex;flex-direction:column;font-size:13px;color:var(--tusk)}
.zv-svod b,.zv-ekon-setka b{font-size:19px;color:var(--tekst)}
.zv-ekon-setka b.zv-plus{color:#1F7A44}
.zv-ekon-setka b.in-krasno{color:#C0392B}
.kartochka.zv-ekon{display:flex;flex-direction:column;gap:10px;margin-top:14px}
:root[data-tema="temnaya"] .zv-status.st-soglasovanie,:root[data-tema="temnaya"] .zv-otkaz.zhdet{background:#4A3410;color:#FFD591}
:root[data-tema="temnaya"] .zv-status.st-v_rabote{background:#123B49;color:#9BD8EC}
:root[data-tema="temnaya"] .zv-status.st-privezeno{background:#143D27;color:#8FE0B0}
:root[data-tema="temnaya"] .zv-status.st-otkazano,:root[data-tema="temnaya"] .zv-otkaz,:root[data-tema="temnaya"] .kartochka.zv-trevoga,:root[data-tema="temnaya"] .zv-metka.krasno{background:#4A1D18;color:#FFB4A9}
:root[data-tema="temnaya"] .zv-metka.ogon{background:#4A2A14;color:#FFC29A}
:root[data-tema="temnaya"] .zv-plus,:root[data-tema="temnaya"] .zv-ekon-setka b.zv-plus{color:#6FD39A}
.zv-fakt{font-size:13px;font-weight:600}
.zv-rash-foto{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.zv-rash-foto img{width:72px;height:72px;object-fit:cover;border-radius:10px;cursor:pointer;background:var(--fon2,#eee)}

/* === Реестр платежей и платёжный календарь (platezhi.js) === */
.zv-ryad.pt-zayavka,.zv-kart.pt-zayavka{border-left-color:#D97706}
.zv-ryad.pt-utverzhden,.zv-kart.pt-utverzhden{border-left-color:var(--akcent-knopka)}
.zv-ryad.pt-oplachen,.zv-kart.pt-oplachen,.zv-ryad.pt-polucheno,.zv-kart.pt-polucheno,.zv-ryad.pt-ozhidaetsya,.zv-kart.pt-ozhidaetsya{border-left-color:#1F7A44}
.zv-ryad.pt-otklonen,.zv-kart.pt-otklonen{border-left-color:#C0392B}
.zv-status.pt-zayavka{background:#FDEBC8;color:#8A4B00}
.zv-status.pt-oplachen,.zv-status.pt-polucheno{background:#D7F0E0;color:#17603A}
.zv-status.pt-otklonen{background:#FADBD8;color:#8E2B20}
.kartochka.pt-kal{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px}
.pt-ned{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--tusk) 16%,transparent)}
.pt-ned:last-child{border-bottom:0}
.pt-ned.razryv{background:color-mix(in srgb,#C0392B 8%,transparent);margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:10px}
:root[data-tema="temnaya"] .zv-status.pt-zayavka{background:#4A3410;color:#FFD591}
:root[data-tema="temnaya"] .zv-status.pt-oplachen,:root[data-tema="temnaya"] .zv-status.pt-polucheno{background:#143D27;color:#8FE0B0}
:root[data-tema="temnaya"] .zv-status.pt-otklonen{background:#4A1D18;color:#FFB4A9}

/* === Смета по расценкам: подбор расценки Минстроя, калькулятор, черновые сметы (rascenki.js) === */
.kartochka.rs-itog{display:flex;flex-direction:column;gap:6px}
.rs-vopros{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px dashed color-mix(in srgb,var(--tusk) 22%,transparent)}
.rs-summa{flex:none;min-width:92px;text-align:right}
.rs-sostav{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.rs-nastr summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.rs-nastr .pm-forma{margin-top:10px}
.zv-poz .rs-ubrat{flex:none;min-width:44px;min-height:44px}

/* === Файлы в чатах и документ помощнику (12.10.2026) === */
.chat-chto{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px 2px}
.chat-chto .knopka{flex:1 1 140px}
.chat-fayl{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;width:240px;max-width:100%;padding:10px 12px;border:1px solid var(--liniya);border-radius:12px;background:var(--fon);color:var(--tekst);font:inherit;text-align:left;cursor:pointer}
.chat-fayl:disabled{cursor:default;opacity:.8}
.chat-fayl .cf-znak{grid-row:span 2;font-size:26px;line-height:1}
.chat-fayl .cf-imya{font-weight:500;overflow-wrap:anywhere;line-height:1.25}
.chat-fayl .cf-ves{font-size:13px;color:var(--tusk)}
.chat-v-papku{text-decoration:none}
.chat-razbor,.chat-v-papku{display:block;margin-top:6px;padding:8px 0;min-height:40px;border:0;background:none;color:var(--akcent);font:inherit;font-size:15px;font-weight:500;text-align:left;cursor:pointer}
.soobshch.moe .chat-razbor,.soobshch.moe .chat-v-papku{color:inherit;text-decoration:underline}
.razg-skrepka{flex:none;margin:0 -4px 0 -6px}
.razg-fayl{font-weight:500}
.razg-soob.razbor{max-width:100%}
.razg-soob.razbor .razg-puzyr{font-size:16px}

/* === Юридический документ в чате с помощником (12.10.2026) === */
.razg-bystro{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.razg-bystro .pill{flex:none;white-space:nowrap}
.razg-dok{background:var(--kartochka);border:1px solid var(--liniya);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.rd-shapka{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:17px}
.rd-proekt{font-size:12px;padding:2px 8px;border-radius:10px;background:var(--fon);color:var(--tusk);border:1px solid var(--liniya)}
.rd-tekst{white-space:pre-wrap;overflow-wrap:anywhere;font-family:"Times New Roman",Georgia,serif;font-size:16px;line-height:1.45;max-height:260px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.razg-dok.ves .rd-tekst{max-height:none;-webkit-mask-image:none;mask-image:none}
.rd-knopki{display:flex;flex-wrap:wrap;gap:8px}

/* === Объект в шапке главных экранов (правка №65): слева — текущий объект, справа — «Меню», заголовок экрана строкой ниже === */
.s-obektom{flex-wrap:wrap;row-gap:6px}
.s-obektom .obekt-knopka{order:-2;flex:1 1 0;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;color:var(--tekst);text-decoration:none;font-size:16px}
.s-obektom .obekt-knopka svg{flex:none;width:20px;height:20px;color:var(--akcent)}
.s-obektom .obekt-knopka b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.s-obektom .obekt-knopka i{flex:none;font-style:normal;color:var(--tusk);font-size:13px}
.s-obektom .obekt-knopka:active{opacity:.6}
.s-obektom .obekt-knopka ~ .menyu-knopka{order:-1;margin-left:0}
.s-obektom .obekt-knopka ~ h1{flex:1 1 100%}
/* правка №67: над объектом было пустое поле — верхняя строка поднята к краю (область нажатия прежняя) */
.s-obektom .obekt-knopka,.s-obektom .obekt-knopka ~ .menyu-knopka{margin-top:-12px}
.s-obektom .obekt-knopka ~ h1{margin-top:-4px}
[data-ekran="obekty"] .obekt-knopka{display:none}
.kartochka.obekt-vse{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
/* правка №119: «Закрыть объект» на карточке и «Архивированные» внизу списка */
.kartochka .ob-zakryt{align-self:flex-end;font-size:14px;min-height:36px;margin:-4px -8px -6px 0}
.ob-arhiv{margin-top:8px}.ob-arhiv > summary{cursor:pointer;color:var(--tusk);font-size:15px;padding:10px 4px;min-height:44px}
.ob-arhiv-k{margin-top:8px}.ob-arhiv-k a{color:inherit;text-decoration:none}.ob-arhiv-k .ob-vernut{align-self:flex-start}
.kartochka.tek{border-color:var(--akcent);box-shadow:inset 3px 0 0 var(--akcent)}
[data-ekran="obekty"] .s-obektom .obekt-knopka ~ .menyu-knopka{order:0}
[data-ekran="obekty"] .s-obektom .obekt-knopka ~ .menyu-knopka,[data-ekran="obekty"] .s-obektom .obekt-knopka ~ h1{margin-top:0}
[data-ekran="obekty"] .s-obektom .obekt-knopka ~ h1{flex:1 1 0}

/* === Избранное в меню (правка №68): звёздочка у пункта — он встаёт внизу справа от сканера === */
.menyu-punkt .zvezda{margin-left:auto;flex:none;width:44px;height:44px;margin-top:-8px;margin-bottom:-8px;border:0;background:none;font-size:24px;line-height:1;color:var(--tusk);cursor:pointer;border-radius:50%}
.menyu-punkt .zvezda[aria-pressed="true"]{color:var(--akcent)}
.menyu-punkt .zvezda:active{transform:scale(.9)}
.menyu-punkt .zvezda + .str{margin-left:0}


/* === Мотивация ПТО (этап 8, пункт 3) === */
.mot-plitka .mot-glavnoe{color:var(--akcent)}
.mot-raskr{margin-top:10px;border-top:1px solid var(--liniya);padding-top:8px}
.mot-raskr summary{cursor:pointer;font-weight:600;font-size:14px;min-height:32px;display:flex;align-items:center}
.mot-stroka{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;color:var(--tekst);text-decoration:none}
.mot-stroka span{min-width:0;display:flex;flex-direction:column;gap:2px}
.mot-stroka small{color:var(--tusk);font-size:12px}
.mot-stroka b{flex:none}
.mot-forma{display:flex;flex-direction:column;gap:8px;margin-top:12px;border-top:1px solid var(--liniya);padding-top:10px}

/* === Заработок от объёмов (этап 9) === */
.zr-polosa{height:8px;border-radius:4px;background:var(--liniya);overflow:hidden}
.zr-polosa i{display:block;height:100%;border-radius:4px;background:var(--akcent-knopka)}
.zr-polosa.krasno i{background:#C0392B}
.zr-chelovek{padding:6px 0;border-top:1px solid var(--liniya)}
.zr-chelovek:first-of-type{border-top:0}
.zr-chelovek .tekst-knopka{margin-top:4px}
#zr-forma [hidden],#zr-ch-forma [hidden]{display:none}
.pole[hidden],#zr-forma div[hidden]{display:none}
.zr-vypl{display:flex;flex-direction:column;align-items:flex-end}
.zr-vypl small{font-weight:400}
a.obem-plashka{display:block;text-decoration:none}

/* === Файлы комплекта документов (этап 4) === */
.kartochka.dk-fayl{display:flex;flex-direction:row;align-items:center;gap:8px;padding:8px 12px}
.dk-fayl-otkr{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;background:none;border:0;font:inherit;color:inherit;padding:4px 0;min-height:44px;cursor:pointer}
.dk-fayl-otkr b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk-fayl .tekst-knopka{flex:none;width:auto;align-self:center}

/* === Финмодель объектов (этап 8.1) === */
.fm-prognoz{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.fm-prognoz small{color:var(--tusk);font-size:12px}
.fm-prognoz b{font-size:22px;line-height:1.2}
.fm-punkt{display:flex;justify-content:space-between;gap:12px;padding:8px 0 8px 12px;border-left:2px solid var(--liniya,rgba(0,0,0,.12));color:var(--tekst);text-decoration:none;font-size:14px;min-height:44px;align-items:center}
.fm-punkt span:first-child{min-width:0;overflow-wrap:anywhere}
.fm-punkt span:last-child{white-space:nowrap}
.fm-statya,.fm-mesyac{display:flex;flex-direction:column;gap:4px}
.fm-dve{display:flex;flex-direction:column;gap:3px}
.fm-dve i{display:block;height:6px;border-radius:3px;min-width:2px}
.fm-plus{background:#15803D}
.fm-gr summary{font-weight:400}
.fm-gr summary .mot-stroka{flex:1;min-width:0}
.fm-minus{background:var(--tusk)}
.fm-otkuda{padding:4px 2px 16px}

/* === Папка документов объекта (этап 12) === */
.pp-vidy{display:flex;gap:6px;overflow-x:auto;padding:2px 0;scrollbar-width:none}
.pp-vidy:empty{display:none}
.pp-poryadok{align-items:center}
.pp-poryadok .melko{flex:none}
.pp-vid{flex:none;min-height:36px;padding:6px 12px;border-radius:18px;border:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);font:inherit;font-size:14px;cursor:pointer}
.pp-vid.on{background:var(--akcent-tusk);border-color:var(--akcent);color:var(--akcent)}
.pp-vid .num{color:var(--tusk)}
#pp-spisok{display:flex;flex-direction:column;gap:8px}
.kartochka.pp-dok{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.pp-dok b{overflow-wrap:anywhere}
.pp-smysl{font-size:12px;color:var(--tusk);margin-top:3px}
.pp-otryvok{font-size:13px;line-height:1.4;color:var(--tusk);border-left:2px solid var(--akcent);padding-left:8px;margin-top:3px;overflow-wrap:anywhere}
.pp-net{padding:12px 4px}
.pp-tekst{white-space:pre-wrap;font-size:13px;line-height:1.45;max-height:320px;overflow:auto;overflow-wrap:anywhere}
/* === Табель: кто вышел, поимённо === */
.kartochka.tb-vhod{display:flex;flex-direction:row;align-items:center;gap:12px;text-decoration:none;color:inherit;border-color:var(--akcent)}
.tb-strelka{font-size:24px;line-height:1;color:var(--akcent)}
.kartochka.tb-den{display:flex;flex-direction:row;align-items:center;gap:8px}
.tb-data{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.tb-list{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;text-decoration:none;color:var(--akcent);border-radius:12px}
.tb-list:active{background:var(--fon)}
.tb-list.pusto{visibility:hidden}
.tb-itog{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:15px;padding:0 4px}
.tb-zhdet b{color:var(--oshibka,#B42318)}
.kartochka.tb-ryad{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}
.tb-imya[role="button"]{cursor:pointer}
.tb-dop{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding-top:4px;border-top:1px dashed var(--liniya,rgba(0,0,0,.14))}
.tb-dop label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--tusk);flex:1 1 140px}
.tb-dop .pole{min-height:44px;padding:8px 10px}
.tb-dop .knopka{min-height:44px}
.tb-dop label:first-child:has(#tb-chasy){flex:0 0 96px}
.tb-knopki{display:flex;gap:6px;flex:none}
.tb-kn{min-width:72px;min-height:44px;padding:0 12px;border-radius:12px;border:1.5px solid var(--liniya,rgba(0,0,0,.14));background:transparent;color:var(--tekst);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:transform .12s,background .15s,border-color .15s}
.tb-kn:active{transform:scale(.96)}
.tb-kn:disabled{opacity:.55;cursor:default}
.tb-kn.da.vkl{background:var(--ok);border-color:var(--ok);color:#fff}
.tb-kn.net.vkl{background:var(--oshibka,#B42318);border-color:var(--oshibka,#B42318);color:#fff}
.tb-kn.net{min-width:56px}
.kartochka.tb-mes{display:flex;flex-direction:column;gap:8px}
.tb-mes-verh{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.tb-dni{display:flex;flex-wrap:wrap;gap:4px}
.tb-d{min-width:28px;height:28px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;font-variant-numeric:tabular-nums}
.tb-d.da{background:var(--ok-fon);color:var(--ok);font-weight:600}
.tb-d.net{color:var(--tusk);text-decoration:line-through;border:1px dashed var(--liniya,rgba(0,0,0,.2))}
.den-tabel{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;color:inherit;font-size:14px;min-height:40px}
.den-tabel b{color:var(--akcent)}
.pp-kratko{font-size:14px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* === Документы из «Папки» под рукой: выбор в комплекте и в чате с помощником (этап 12, пункт 5) === */
.dk-papka,.razg-papka{display:flex;flex-direction:column;gap:6px}
.dk-papka[hidden],.razg-papka[hidden]{display:none}
.razg-papka{max-height:38vh;overflow:auto;padding:2px 0}
.dk-papka-dok,.razg-papka-dok,.razg-smeta-p{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;min-height:44px;padding:8px 12px;border:1px solid var(--liniya);border-radius:12px;background:var(--kartochka);color:var(--tekst);font:inherit;cursor:pointer}
.dk-papka-dok b,.razg-papka-dok b{overflow-wrap:anywhere}
.dk-papka-dok:active,.razg-papka-dok:active{background:var(--akcent-tusk)}


/* === Смета в чате с помощником: кнопка «Смета», отчёт об объёмах, расценки (правка №75) === */
.razg-smeta{display:flex;flex-direction:column;gap:6px}
.razg-smeta[hidden]{display:none}
.pr-stroki{grid-column:1/-1;display:grid;gap:8px}
.pr-stroka{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;font-size:14px;color:var(--tekst)}
.pr-stroka>span:first-child{display:grid;gap:2px;min-width:0}
.pr-kol{display:flex;align-items:center;gap:6px}
.pr-kol .pole{width:92px;margin:0;min-height:42px;text-align:right}
.pr-podskazka{grid-column:1/-1}
.razg-rc{display:grid;gap:12px}
.rc-vopros{display:grid;gap:8px}
.rc-varianty{display:flex;flex-wrap:wrap;gap:8px}
.rc-varianty .pill.vybr{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.rc-svoy{margin:0}
.rc-kand{display:grid;gap:4px;padding-top:12px;border-top:1px solid var(--liniya)}
.rc-kand:first-child{padding-top:0;border-top:0}
.rc-dobavit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.rc-dobavit .pole{width:150px;margin:0;min-height:42px}
.rc-smeta:empty{display:none}

/* === Подбор строк сметы по смыслу (13.10.2026) === */
.zam-poisk:has(#smeta-umno){display:flex;gap:8px;align-items:stretch}
.zam-poisk:has(#smeta-umno) .pole{flex:1;min-width:0;width:auto}
#smeta-umno{flex:none;white-space:nowrap}
.otch-list-okno [data-umno]{width:100%}

/* === Люди и подрядчики (справочник) === */
.ka-pole{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-top:1px solid var(--linia,rgba(0,0,0,.08))}
.ka-pole small{color:var(--tusk);font-size:.8em}
.ka-pole span{white-space:pre-wrap;overflow-wrap:anywhere}
button.pp-dok{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--linia,rgba(0,0,0,.08));padding:8px 0;color:inherit;font:inherit;cursor:pointer}
a.pp-dok:not(.kartochka){display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid var(--linia,rgba(0,0,0,.08));color:inherit;text-decoration:none}
.galka{display:flex;align-items:center;gap:8px;padding:6px 0}
.ryad-knopok{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}

/* === Скан документов === */
.skan-okno{position:fixed;inset:0;z-index:300;background:var(--fon,#fff);display:flex;flex-direction:column;gap:10px;padding:12px;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom));overflow:auto}
.skan-verh{display:flex;flex-direction:column;gap:2px}
.skan-pole{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#111;border-radius:12px;overflow:hidden}
.skan-pole canvas{max-width:100%;max-height:100%;touch-action:none}
.skan-niz{display:flex;flex-direction:column;gap:10px}
.skan-rezhim{display:flex;gap:6px}
.skan-rezhim button{flex:1;padding:8px;border-radius:10px;border:1px solid var(--linia,rgba(0,0,0,.15));background:none;color:inherit;font:inherit}
.skan-rezhim button.on{background:var(--akcent-knopka,#C2410C);color:#fff;border-color:transparent}
.skan-spisok{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.skan-str{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.85em}
.skan-str img{width:100%;aspect-ratio:1/1.41;object-fit:cover;border:1px solid var(--linia,rgba(0,0,0,.15));border-radius:6px;background:#fff}
.ka-fayl-ryad{display:flex;flex-direction:column;gap:4px;padding-bottom:6px}

/* === Раздел сметы выполнен полностью === */
.razdel-gotovo{display:block;margin:-4px 0 8px;min-height:36px}


/* === Кружок «+» внизу списков отчётов, замечаний, задач (правка №79, 14.10.2026) === */
.niz-krug{justify-content:flex-end;align-items:center;gap:10px}
.niz-krug .zam-dokumenty{flex:1;margin:0}
.knopka.krug-plyus{width:58px;height:58px;min-height:58px;border-radius:50%;padding:0;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px var(--akcent-knopka, #C2410C)}
.knopka.krug-plyus svg{width:28px;height:28px}

/* === Удалить сообщение в чате (правка №82) === */
.chat-udalit{display:block;margin-top:6px;padding:8px 0;min-height:40px;border:0;background:none;color:#B42318;font:inherit;font-size:15px;font-weight:500;text-align:left;cursor:pointer}
.soobshch.moe .chat-udalit{color:inherit;text-decoration:underline}
:root[data-tema="temnaya"] .chat-udalit{color:#F97066}
:root[data-tema="temnaya"] .soobshch.moe .chat-udalit{color:inherit}

/* === Ответ с цитатой, правка и версии сообщения в чате (правка №87) === */
.chat-deystviya{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:6px;padding-top:4px;border-top:1px solid rgba(0,0,0,.08)}
.chat-deystviya button{min-height:40px;padding:6px 0;border:0;background:none;color:inherit;font:inherit;font-size:15px;font-weight:500;cursor:pointer}
.chat-deystviya button.kr{color:#B42318}
.soobshch.moe .chat-deystviya button.kr{color:inherit;text-decoration:underline}
.chat-deystviya .melko{flex-basis:100%;color:var(--tusk)}
.chat-citata{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin:0 0 2px;padding:4px 8px;border:0;border-left:3px solid var(--akcent);border-radius:6px;background:rgba(0,0,0,.05);color:inherit;font:inherit;text-align:left;cursor:pointer;max-width:100%}
.chat-citata b{font-size:13px;font-weight:600;color:var(--akcent)}
.chat-citata span{font-size:14px;opacity:.85;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.chat-izm{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.chat-versii{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.08)}
.chat-versiya{display:flex;flex-direction:column;gap:1px;padding-left:8px;border-left:3px solid rgba(0,0,0,.15)}
.chat-versiya.tek{border-left-color:var(--akcent)}
.chat-versiya .v-tekst{white-space:pre-wrap;overflow-wrap:anywhere}
.soobshch.vspyshka{animation:chat-vspyshka 1.4s ease-out}
@keyframes chat-vspyshka{0%,35%{box-shadow:0 0 0 3px var(--akcent)}100%{box-shadow:0 1px 1px rgba(52,46,30,.06)}}
.chat-rezhim{display:flex;align-items:center;gap:8px;padding:6px 8px 0 12px}
.chat-rezhim[hidden]{display:none}
.chat-rezhim .sr{flex:1;min-width:0;display:flex;flex-direction:column;padding-left:8px;border-left:3px solid var(--akcent)}
.chat-rezhim .sr b{font-size:13px;font-weight:600;color:var(--akcent)}
.chat-rezhim .sr span{font-size:14px;color:var(--tusk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root[data-tema="temnaya"] .chat-deystviya button.kr{color:#F97066}
:root[data-tema="temnaya"] .soobshch.moe .chat-deystviya button.kr{color:inherit}
:root[data-tema="temnaya"] .chat-citata{background:rgba(255,255,255,.07)}
:root[data-tema="temnaya"] .chat-deystviya,:root[data-tema="temnaya"] .chat-versii{border-top-color:rgba(255,255,255,.12)}

/* === инструмент: чужие объекты, статистика (15.10.2026) === */
.kartochka.in-chuzhoy{border:1.5px solid var(--oshibka,#B42318)}
.in-izb{color:var(--akcent)}
.kartochka.in-st{display:flex;flex-direction:column;gap:6px}
.in-st-verh{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.in-polosa{height:8px;border-radius:4px;background:var(--fon);overflow:hidden}
.in-polosa i{display:block;height:100%;background:var(--akcent-knopka);border-radius:4px}

/* === Недельная потребность (zayavki.js, пункт 7.5) === */
.kartochka.zv-potr-vhod{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}
.zv-potr-nedelya{align-items:center;margin-bottom:12px}
.zv-potr-rab,.zv-potr-mat{display:flex;flex-direction:column;gap:6px}
.kartochka.zv-potr-mat.nehvat{border-left:4px solid #C0392B}
.zv-potr-panel{display:flex;flex-direction:column;gap:8px;padding-top:6px;border-top:1px solid var(--linii,rgba(0,0,0,.08))}
.zv-potr-vybrano label{gap:8px;align-items:center}

/* === Склад голосом (sklad.js, пункт 7.2) === */
.sk-gl-stroka{display:flex;flex-direction:column;gap:8px}
.sk-gl-vopros{display:flex;flex-direction:column;gap:6px}
.sk-gl-vopros .chipy{display:flex;flex-wrap:wrap;gap:6px}
.sk-gl-vopros .chip{border:1px solid var(--akcent);background:transparent;color:var(--akcent);border-radius:16px;padding:6px 12px;font:inherit;font-size:14px;cursor:pointer}
.sk-gl-vopros .chip.vybran{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.sk-gl-mik{gap:8px}
.sk-gl-mik.idyot{animation:sk-puls 1.2s ease-in-out infinite}
@keyframes sk-puls{50%{opacity:.7}}

/* === Сверка расхода со сметой (sklad.js) === */
.kartochka.sk-sv-vhod{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;margin-bottom:10px}
.sk-sv-razdel{display:flex;flex-direction:column;gap:12px}
.sk-sv-mat{display:flex;flex-direction:column;gap:6px;padding-left:10px;border-left:4px solid transparent}
.sk-sv-mat.pererashod{border-left-color:#C0392B}
.sk-sv-mat.malo{border-left-color:#D68910}
.sk-sv-mat.norma{border-left-color:#1E8449}
/* === Ведомость объёмов для стройконтроля (obemy-pom.js) === */
.kartochka.ob-pdf{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}

/* === План-график по шахматке (shahmatka.js) === */
.shg-obertka{overflow-x:auto;-webkit-overflow-scrolling:touch}
.shg{border-collapse:collapse;font-size:13px;min-width:100%}
.shg th,.shg td{border:1px solid var(--linii,rgba(127,127,127,.25));padding:6px 8px;text-align:center;white-space:nowrap}
.shg tbody th{text-align:left;position:sticky;left:0;background:var(--kartochka);font-weight:600}
.shg tbody th a{color:inherit;text-decoration:none}
.shg .seychas{background:color-mix(in srgb,var(--akcent) 10%,transparent)}
.shg .gotovo{color:#1E8449;font-weight:700}
.shg .prosr{color:#C0392B;font-weight:700}
.shg .plan{font-weight:600}
.razg-v-papku{font-size:13px;margin-top:4px;align-self:flex-end}
.razg-v-papku-vybor{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:4px}

/* === Карточка помещения по коду без входа (app.js, пункт 10.3) === */
.pomo{padding-top:18px}
.pomo-logo{justify-content:center;margin-bottom:12px}
.pomo-zag{font-size:22px;margin:4px 0}
.pomo-rab{padding:6px 0;border-bottom:1px solid var(--linii,rgba(127,127,127,.18))}
.pomo-rab:last-child{border-bottom:0}
.pomo-otch{display:flex;flex-direction:column;gap:6px}
.pomo-foto{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pomo-foto img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}

/* === Широкий экран: боковая полоса как в amoCRM (Дмитрий 17.10.2026: «отдельную вёрстку под десктоп») ===
   От 1024 px: слева тёмная полоса со всеми разделами (#sd-bok, рисует bokovaya() в app.js), нижнего меню нет,
   содержимое экрана — по центру, не шире ~1080 px (широкие таблицы шахматки — во всю ширину). На телефоне — как было. */
#sd-bok{display:none}
@media (min-width:1024px){
  .s-bokom #sd-bok:not([hidden]){display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:84px;z-index:40;
    background:#1F2A37;color:rgba(255,255,255,.72);padding:10px 0 8px;box-shadow:1px 0 0 rgba(0,0,0,.08)}
  #sd-bok a{color:inherit;text-decoration:none}
  #sd-bok .bok-znak{display:flex;justify-content:center;align-items:center;gap:10px;padding:4px 0 12px;color:var(--akcent-knopka);background:none;border:0;cursor:pointer;font:inherit}
  #sd-bok .bok-znak svg{width:34px;height:34px;flex:none}
  #sd-bok .bok-znak .bok-n{display:none;color:#fff;font-weight:700;font-size:16px}
  #sd-bok,.s-bokom #ramka{transition:width .2s,left .2s}
  /* правка №117: логотип раскрывает полосу — значок и название в строку */
  .bok-shir.s-bokom #sd-bok:not([hidden]){width:240px}
  .bok-shir.s-bokom #ramka{left:240px}
  .bok-shir #sd-bok .bok-znak{justify-content:flex-start;padding-left:20px}
  .bok-shir #sd-bok .bok-znak .bok-n{display:block}
  .bok-shir #sd-bok .bok-spisok a,.bok-shir #sd-bok .bok-menyu{flex-direction:row;gap:12px;padding:9px 16px 9px 20px;font-size:14px;text-align:left}
  .bok-shir #sd-bok .bok-n{max-width:none;-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis;display:block}
  .bok-shir #sd-bok .bok-menyu .ava-mal{width:24px;height:24px;font-size:12px;flex:none}
  /* правка №117: поиск по меню — строка в раскрытой полосе, в свёрнутой — лупа (раскрывает и ставит курсор) */
  #sd-bok [hidden]{display:none!important}
  #sd-bok .bok-lupa{display:flex;justify-content:center;margin:0 auto 6px;padding:8px;border:0;border-radius:8px;background:none;color:inherit;cursor:pointer}
  #sd-bok .bok-lupa:hover{background:rgba(255,255,255,.07);color:#fff}
  #sd-bok .bok-poisk{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:0 10px;border-radius:8px;background:rgba(255,255,255,.08)}
  #sd-bok .bok-poisk:focus-within{background:rgba(255,255,255,.14);outline:2px solid var(--akcent-knopka)}
  #sd-bok .bok-poisk input{flex:1;min-width:0;height:36px;border:0;background:none;color:#fff;font:inherit;font-size:14px;outline:none}
  #sd-bok .bok-poisk input::placeholder{color:rgba(255,255,255,.5)}
  #sd-bok .bok-nichego{margin:8px 16px;font-size:13px;line-height:1.35;color:rgba(255,255,255,.6)}
  #sd-bok .bok-spisok{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
  #sd-bok .bok-spisok a,#sd-bok .bok-menyu{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;
    font-size:11px;line-height:1.15;text-align:center;transition:background-color .15s,color .15s}
  #sd-bok .bok-spisok a:hover,#sd-bok .bok-menyu:hover{background:rgba(255,255,255,.07);color:#fff}
  #sd-bok a.on{color:#fff;background:rgba(255,255,255,.1)}
  #sd-bok a.on::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--akcent-knopka)}
  #sd-bok .ikonka{position:relative;display:flex}
  #sd-bok .ikonka svg{width:22px;height:22px}
  #sd-bok .bejdzh{position:absolute;top:-6px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#E5484D;color:#fff;
    font:600 10px/16px var(--shrift,inherit);font-style:normal;text-align:center}
  #sd-bok .bok-n{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:76px;word-break:break-word}
  #sd-bok hr{border:0;border-top:1px solid rgba(255,255,255,.12);margin:6px 14px}
  #sd-bok .bok-menyu{border-top:1px solid rgba(255,255,255,.12);padding-top:10px}
  #sd-bok .ava-mal{width:30px;height:30px;border-radius:50%;background:var(--akcent-knopka);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}

  .s-bokom #ramka{left:84px}
  .s-bokom .nav-niz{display:none}
  .s-bokom .menyu-knopka{display:none}
  /* содержимое по центру: шапка, тело и нижние кнопки на одной линии */
  .s-bokom .ekran .shapka,.s-bokom .ekran .shapka-glavnaya,.s-bokom .ekran .telo,.s-bokom .ekran .niz{
    padding-left:max(28px,calc((100% - 1080px) / 2));padding-right:max(28px,calc((100% - 1080px) / 2))}
  .s-bokom .ekran[data-ekran^="shahmatka"] .telo,.s-bokom .ekran[data-ekran^="shahmatka"] .shapka{padding-left:28px;padding-right:28px}
  .s-bokom .ekran .niz{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}
  .s-bokom .ekran .niz > .knopka{flex:0 1 auto;min-width:220px}
  .s-bokom .ekran .niz > :not(.knopka){flex-basis:100%}
  /* выезжающие снизу окна — посередине */
  .s-bokom .kp-list,.s-bokom .otch-list{align-items:center}
  /* мышь: подсветка строк и карточек под курсором */
  .s-bokom .chat-ryad:hover,.s-bokom .menyu-punkt:hover{background:color-mix(in srgb,var(--akcent) 6%,var(--kartochka))}
  .s-bokom .chat-ryad,.s-bokom .menyu-punkt{cursor:pointer}
}

/* === Окно «Помещения»: Список · Шахматка · Объёмы по смете (17.10.2026, raspredelenie.js) === */
.pom-vkl{display:flex;gap:6px;padding:8px 12px;background:var(--kartochka);border-bottom:1px solid var(--liniya);overflow-x:auto;flex:none}
.pom-vkl a{flex:none;padding:7px 14px;border-radius:999px;border:1px solid var(--liniya);color:var(--tekst);text-decoration:none;font-weight:500;font-size:14px;white-space:nowrap}
.pom-vkl a.on{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.rs-itog{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rs-itog div{display:flex;flex-direction:column;gap:2px}.rs-itog b{font-size:15px}
.rs-avto{padding:2px 2px 4px}
.rs-etazhi summary{cursor:pointer}
.rs-et{display:flex;align-items:center;gap:8px;margin-top:8px}.rs-et span{flex:1}.rs-et input{width:90px;text-align:right}
.rs-vid,.rs-otbor{flex-wrap:wrap}
.rs-str{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}
.rs-nazv{font-weight:600}
.rs-spos{font-size:12.5px;color:var(--akcent);font-weight:600}.rs-spos.avto{color:var(--tusk);font-weight:500}
.rs-pom{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit;position:relative}
.rs-sum{position:absolute;right:14px;top:12px;text-align:right;font-weight:700}.rs-sum small{display:block;font-weight:400;color:var(--tusk);font-size:12px}
.rs-okno{max-height:86vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.rs-pomy{max-height:34vh;overflow-y:auto;border:1px solid var(--liniya);border-radius:12px;padding:8px}
.rs-gr{margin-bottom:6px}.rs-gr-z{display:flex;gap:6px;align-items:center;padding:4px 0}
.rs-pm{display:flex;gap:6px;align-items:center;padding:3px 0 3px 22px;font-size:14px}
.rs-doli{display:flex;flex-direction:column;gap:4px;max-height:30vh;overflow-y:auto}
.rs-doli div{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:baseline;font-size:14px;padding:4px 0;border-bottom:1px dashed var(--liniya)}
.rs-plan{display:flex;flex-direction:column;gap:4px}
.rs-polosa{height:6px;border-radius:3px;background:color-mix(in srgb,var(--tusk) 18%,transparent);overflow:hidden}
.rs-polosa i{display:block;height:100%;background:var(--akcent-knopka)}
.rs-okno{background:var(--kartochka);color:var(--tekst);border-radius:18px 18px 0 0;padding:16px;width:100%;max-width:560px;box-shadow:var(--ten-sil)}
@media (min-width:1024px){.rs-okno{border-radius:18px}}

/* === Демо-вход для проверяющих магазина (17.10.2026, razdel_demo.py) === */
.ssylka-tiho{border:0;background:none;color:var(--tusk);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:center;padding:4px 8px}

/* === План работ и отметка выполнения голосом в помещении (17.10.2026, shahmatka.js → razdel_plan_pom.py) === */
.pg-knopki{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.pg-knopki .knopka{flex:1;min-width:200px}
.pg-okno textarea{resize:vertical}
.pg-skazano{font-style:italic;background:color-mix(in srgb,var(--tusk) 10%,transparent);border-radius:10px;padding:8px 10px}
.pg-spisok{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto}
.pg-str{display:grid;grid-template-columns:24px 1fr auto;gap:6px 8px;align-items:center;border:1px solid var(--liniya);border-radius:12px;padding:8px}
.pg-n{color:var(--tusk);font-weight:700;text-align:center}
.pg-str-niz{grid-column:2/4;display:flex;gap:6px}.pg-str-niz select{flex:1;min-width:0}.pg-str-niz input{width:150px}
.pg-str-kn{display:flex;gap:2px;grid-row:1;grid-column:3}
.pg-str-kn button,.pg-otm button{border:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);border-radius:8px;width:30px;height:30px;font-size:15px;cursor:pointer}
.pg-otm{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;border:1px solid var(--liniya);border-radius:12px;padding:8px}
.pg-proc{display:flex;align-items:center;gap:4px}.pg-proc input{width:64px;text-align:right}

/* === Поиск по всем карточкам (сквозная задача плана, razdel_poisk.py) === */
.ps-ryad{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;color:inherit;text-decoration:none}
.ps-ryad b{overflow-wrap:anywhere}
/* «План» в окне «Помещения» (правка №101): этаж по чертежу, помещения раскрашены по шахматке — plan-pom.js */
.pp-etazhi{margin-bottom:8px;flex-wrap:wrap}
#pp-rabota,#pp-poisk{margin-bottom:8px}
.pp-kv{display:inline-block;width:16px;height:16px;border-radius:4px;border:1.5px solid color-mix(in srgb,var(--tusk) 50%,transparent)}
.pp-mashtab{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pp-mashtab .knopka{min-width:44px;padding:6px 0;font-size:20px;line-height:1}
.pp-okno{overflow:auto;border:1px solid var(--liniya);border-radius:12px;background:var(--kartochka);max-height:70vh;-webkit-overflow-scrolling:touch}
.pp-svg{display:block;height:auto;min-width:100%}
.pp-steny polyline{fill:none;stroke:var(--tekst);stroke-opacity:.55;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}
.pp-pom{cursor:pointer;outline:none}
.pp-pom polygon,.pp-kv{fill:color-mix(in srgb,var(--tusk) 14%,transparent);background:color-mix(in srgb,var(--tusk) 14%,transparent)}
.pp-pom polygon{stroke:color-mix(in srgb,var(--tusk) 50%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}
.pp-pom.v_rabote polygon,.pp-kv.v_rabote{fill:#E0A100;background:#E0A100;fill-opacity:.75}
.pp-pom.gotovo polygon,.pp-kv.gotovo{fill:#2E9E5B;background:#2E9E5B;fill-opacity:.8}
.pp-pom.bez polygon,.pp-pom.chuzhoe polygon,.pp-kv.bez{fill:color-mix(in srgb,var(--tusk) 4%,transparent);background:repeating-linear-gradient(45deg,transparent 0 3px,color-mix(in srgb,var(--tusk) 35%,transparent) 3px 5px);stroke-dasharray:4 3}
.pp-pom text{fill:var(--tekst);text-anchor:middle;dominant-baseline:central;font-weight:600;pointer-events:none;paint-order:stroke;stroke:var(--kartochka);stroke-width:2px;stroke-opacity:.8}
.pp-pom:hover polygon,.pp-pom:focus-visible polygon{stroke:var(--tekst);stroke-width:2}
.pp-pom.nayden polygon{stroke:#D43C2E;stroke-width:3;stroke-dasharray:none}
.pp-pom.vybran polygon{stroke:var(--akcent-knopka);stroke-width:3;stroke-dasharray:none}
.pp-kartochka{margin-top:10px}
.pp-kartochka .knopka{display:block;text-align:center}
.pp-etapy{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:14px}
.pp-etapy span{display:inline-flex;align-items:center;gap:6px}
.pp-etapy .shm-kl{width:20px;height:20px;font-size:11px;border-radius:5px;cursor:default}
/* шахматка видом «Канбан» и «Гант» (shahmatka-vid.js, 31.10.2026) */
.kv-vid{display:flex;gap:0;border:1px solid var(--liniya);border-radius:999px;overflow:hidden;margin-bottom:10px;align-self:flex-start;width:max-content}
.kv-vid button{border:0;background:none;padding:8px 16px;font:inherit;font-weight:500;color:var(--tekst);cursor:pointer}
.kv-vid button.on{background:var(--akcent-knopka);color:#fff}
.kv-filtry{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:4px}
.kv-chip{flex:none;padding:6px 12px;border-radius:999px;border:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);font:inherit;font-size:14px;white-space:nowrap;cursor:pointer}
.kv-chip small{color:var(--tusk);margin-left:2px}
.kv-chip.on{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.kv-chip.on small{color:#fff}
.kv-chip.pusto{opacity:.55}
.kv-progress{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px}
.kv-proc{font-size:22px}
.kv-doska{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}
.kv-kolonka{display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--tusk) 8%,transparent);border-radius:14px;padding:10px;min-width:0}
.kv-kolonka h3{margin:0 0 2px;font-size:15px;display:flex;justify-content:space-between}
.kv-kolonka.gotovo h3{color:#2E9E5B}
.kv-kartochka{background:var(--kartochka);border:1px solid var(--liniya);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.kv-kartochka.prosrochen{border-color:#D64545}
.kv-kartochka a{display:flex;flex-direction:column;color:var(--tekst);text-decoration:none}
.kv-kartochka a span{color:var(--tusk);font-size:14px}
.kv-kartochka .tekst-knopka{align-self:flex-start}
.dk-shkala.tonkaya{height:5px}
.kv-gant{display:flex;flex-direction:column;gap:6px;overflow-x:auto}
.kv-g-shkala{position:relative;height:18px;margin-left:38%;font-size:11px;color:var(--tusk)}
.kv-g-shkala span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.kv-g-stroka{display:flex;align-items:center;gap:8px;border:0;background:none;padding:4px 0;font:inherit;color:var(--tekst);text-align:left;cursor:pointer;min-height:34px}
.kv-g-nazv{flex:0 0 38%;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kv-g-nazv .num{color:var(--tusk)}
.kv-g-pole{position:relative;flex:1;height:18px;background:color-mix(in srgb,var(--tusk) 10%,transparent);border-radius:6px}
.kv-g-bar{position:absolute;top:2px;bottom:2px;border-radius:5px;background:color-mix(in srgb,#2E9E5B 30%,transparent);overflow:hidden}
.kv-g-bar b{display:block;height:100%;background:#2E9E5B}
.kv-g-bar.ocenka{outline:1px dashed #2E9E5B;outline-offset:-1px}
.kv-g-bar.prosrochen{background:color-mix(in srgb,#D64545 30%,transparent)}
.kv-g-bar.prosrochen b{background:#D64545}
.kv-g-segodnya{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--akcent-knopka);z-index:1}
.kv-g-bez{display:flex;justify-content:space-between;width:100%;border:1px solid var(--liniya);font:inherit;color:var(--tekst);text-align:left;cursor:pointer}
.kv-istochnik{margin-top:12px}

/* «✏️ Правка» в шапке и «Мои правки» (правка №112, 31.10.2026) */
.shapka .pravka-knopka,.shapka-glavnaya .pravka-knopka{flex:none;border:0;background:transparent;font-size:20px;cursor:pointer;padding:0;margin-left:auto}
.shapka .pravka-knopka + .menyu-knopka,.shapka-glavnaya .pravka-knopka + .menyu-knopka{margin-left:0}
.pravka-knopka:focus-visible{outline:2px solid var(--akcent-knopka);outline-offset:2px;border-radius:12px}
.pravka-vybor-polosa{position:fixed;left:8px;right:8px;top:calc(8px + env(safe-area-inset-top));max-width:480px;margin:0 auto;z-index:190;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  padding:10px 12px;border-radius:14px;background:#0F1112;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.pravka-vybor-polosa span{flex:1 1 100%;font-weight:600}
.pravka-vybor-polosa .knopka{flex:1}
.pravka-vybor #ramka{cursor:crosshair;box-shadow:inset 0 0 0 3px var(--akcent-knopka)}
.pravka-karta{display:flex;flex-direction:column;gap:6px;text-align:left}
.pravka-tekst{white-space:pre-wrap;line-height:1.45}
.pravka-otvet{white-space:pre-wrap;line-height:1.45;padding:8px 10px;border-radius:10px;background:var(--ekran);font-size:14px}
.pravka-otvet.klod{background:var(--akcent-tusk)}
.pravka-dopisat{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.pravka-dopisat > .knopka{align-self:flex-start}
.pravka-dopisat{flex-direction:row;flex-wrap:wrap}.pravka-dopisat:has(textarea){flex-direction:column}
.pravki-zakryt-vse{align-self:flex-start;margin:0 0 4px}
/* поиск расценок с уточнениями кнопками — как в «Сметном друге» (01.11.2026) */
.rs-osi{margin-top:10px}
.rs-chipy{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.rs-chip{font:inherit;font-size:14px;padding:7px 12px;min-height:36px;border-radius:18px;border:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);cursor:pointer}
.rs-chip small{color:var(--tusk);font-size:12px}
.rs-chip.vybr{background:var(--akcent);border-color:var(--akcent);color:#fff}
.rs-chip.vybr small{color:inherit}
.kartochka.rs-nayd{display:flex;flex-direction:column;gap:4px;margin-top:8px}
/* «Рабочий день» в «Меню» и группы пунктов (02.11.2026) */
.rden-karta{margin:4px 12px 8px;padding:12px 14px;border-radius:14px;background:var(--kartochka);border:1px solid var(--liniya)}
.rden-ryad{display:flex;align-items:center;gap:12px}
.rden-tekst{flex:1;display:flex;flex-direction:column;gap:2px;font-size:16px}
.rden-knopka{flex:none;min-width:128px}
.rden-kto{margin-top:10px;border:0;background:none;padding:6px 0;font:inherit;font-size:14px;color:var(--akcent);font-weight:600;cursor:pointer}
.rden-spisok{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.rden-chel span:first-child{flex:none;white-space:nowrap}.rden-chel span:last-child{text-align:right}.rden-chel{display:flex;justify-content:space-between;gap:8px;font-size:15px;border-top:1px solid var(--liniya);padding-top:6px}
.menyu-gruppa{font-size:15px;color:var(--tekst,inherit);opacity:.8}
/* «Говорилка» за рулём (02.11.2026): крупная кнопка микрофона, текст ленты крупнее — взгляд на долю секунды */
.razg-rul .razg-mik { min-height: 96px; font-size: 20px; }
.razg-rul .razg-lenta { font-size: 18px; }
.razg-rul .razg-bystro, .razg-rul .razg-skrepka { display: none; }
/* «Говорилка» — темы как отдельные чаты (02.11.2026): крупная кнопка нового разговора, поле «тема с названием» */
.razg-gov-novyy { width: 100%; min-height: 96px; font-size: 20px; }
.razg-gov-tema { display: flex; gap: 8px; margin-top: 12px; }
.razg-gov-tema .pole { flex: 1; min-width: 0; }
/* Майнд-карта (02.11.2026): ветки — раскрывающиеся блоки с цветной полосой своей главной ветки */
.karta-verh { display: flex; gap: 8px; }
.karta-verh .pole { flex: 1; min-width: 0; }
.karta-uzel { border-left: 4px solid var(--cvet); margin: 8px 0; padding-left: 10px; }
.karta-uzel.ur0 { background: var(--kartochka, rgba(127,127,127,.06)); border-radius: 10px; padding: 8px 10px; }
.karta-uzel > summary { cursor: pointer; display: flex; justify-content: space-between; gap: 8px; align-items: baseline; padding: 4px 0; }
.karta-uzel.ur0 > summary .nazv { font-weight: 700; font-size: 17px; color: var(--cvet); }
.karta-uzel.ur1 > summary .nazv { font-weight: 600; font-size: 15.5px; }
.karta-uzel.ur2 { border-left-width: 2px; }
.karta-zapis { font-size: 14.5px; line-height: 1.45; padding: 3px 0; }
.karta-deystviya { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.karta-deystviya .pill { font-size: 13px; padding: 4px 10px; }
.razg-v-kartu { display: block; text-decoration: none; }

/* Раздел «Отчёты»: список, новый отчёт, проверка. Цвета — из общих переменных (светлая и тёмная тема). */
.otch-filtry{flex-wrap:wrap;gap:8px}
.filtr-k{border:1.5px solid var(--liniya,#D9DCD5);background:var(--kartochka);color:inherit;font:inherit;font-size:14px;min-height:40px;padding:0 14px;cursor:pointer}
.filtr-k[aria-pressed="true"]{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.otch-karta{color:inherit;text-decoration:none}
.otch-mini{grid-template-columns:repeat(4,minmax(0,1fr))}
.foto img{width:100%;height:100%;object-fit:cover;display:block}
.foto .otch-eshche{position:absolute;inset:0;background:rgba(15,17,18,.55);color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;font-size:17px}
.otch-tekst{font-size:15px;line-height:1.4;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.otch-tekst-pol{font-size:16px;line-height:1.45;white-space:pre-wrap}
.otch-vozvrat{font-size:14px;line-height:1.4;background:var(--vozvrat-fon);color:var(--vozvrat-tekst);border-radius:10px;padding:8px 10px}
.otch-ochered{border:1.5px dashed var(--liniya,#C9CCC6)}
.otch-data{align-items:center}
.otch-data .pole{width:auto;min-width:0;flex:0 1 190px}
.otch-zapis{align-items:center;text-align:center}
.otch-golos details summary,.kartochka details summary{cursor:pointer;color:var(--tusk);font-size:14px;min-height:32px;display:flex;align-items:center}
.otch-dosl{margin:6px 0 0;line-height:1.4;font-size:14px}
.otch-predl{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--liniya,#EDEEEB);padding-top:10px}
.otch-predl input[type=checkbox]{width:22px;height:22px;accent-color:var(--akcent);flex:none}
.otch-x-mal{flex:none;width:44px;height:44px;margin:-8px -10px -8px 0;border:0;background:none;color:var(--tusk);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}
.otch-x-mal:focus-visible{outline:2px solid var(--akcent)}
.foto .otch-foto-x{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(15,17,18,.72);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.foto-setka .snyat svg{color:var(--akcent)}
button.foto{border:0;padding:0;cursor:pointer;font:inherit}
.otch-foto-k img{cursor:zoom-in}
.otch-vne-forma{display:flex;flex-direction:column;gap:8px;padding-top:8px}
.otch-itog{border-top:1px solid var(--liniya,#EDEEEB);padding-top:10px}
.stroka .im .ii-znak{margin-right:4px}
/* фото во весь экран */
.otch-prosmotr{position:fixed;inset:0;z-index:60;background:rgba(10,11,12,.94);display:flex;align-items:center;justify-content:center;padding:12px}
.otch-prosmotr img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.otch-prosmotr-x{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
/* выбор позиции сметы — лист снизу */
.otch-list{position:fixed;inset:0;z-index:55;background:rgba(10,11,12,.5);display:flex;align-items:flex-end;justify-content:center}
.otch-list-okno{background:var(--kartochka);width:100%;max-width:520px;max-height:82vh;border-radius:18px 18px 0 0;padding:16px 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.otch-list-spisok{overflow-y:auto;display:flex;flex-direction:column;overscroll-behavior:contain}
.otch-list-p{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:0;border-top:1px solid var(--liniya,#EDEEEB);background:none;color:inherit;font:inherit;font-size:15px;padding:12px 2px;min-height:52px;cursor:pointer}
.otch-list-p:first-child{border-top:0}
.otch-list-p[hidden]{display:none}
.foto-setka .foto.snyat{background:var(--kartochka);border-color:var(--liniya)}
.kolvo input{background:var(--kartochka);color:var(--tekst)}
/* правка №99: вид работ закончен полностью или объём промежуточный */
.otch-zav{display:flex;align-items:center;gap:8px;min-height:40px;padding:2px 0 8px;font-size:14px;color:var(--tusk);cursor:pointer}
.otch-zav input[type=checkbox]{width:22px;height:22px;accent-color:var(--akcent);flex:none}
.otch-zav.da{color:var(--ok-tekst);font-weight:500}
.stroka .im .metka{display:inline-block;margin-top:4px}

/* Ручная правка сметы объекта (smeta-pravka.js). Цвета — только переменные темы. */

/* вкладка «Смета»: загрузка файла и «+ Позиция» рядом; карточка позиции нажимается */
.smeta-knopki{display:flex;flex-wrap:wrap;gap:8px}
.smeta-knopki>label{flex:1 1 200px}
.smeta-knopki>a{flex:0 0 auto;gap:6px;text-decoration:none;padding:0 18px}
.poz[role="link"]{cursor:pointer;transition:transform .15s var(--plavno, ease),box-shadow .2s var(--plavno, ease)}
.poz[role="link"]:active{transform:scale(.985)}
.poz[role="link"]:focus-visible{outline:2px solid var(--akcent);outline-offset:2px}

/* экран позиции */
.sp-forma{display:flex;flex-direction:column;gap:12px}
.sp-forma label.tusk{display:block;margin:0 2px 6px}
.sp-forma textarea.pole{min-height:72px}
.sp-dva{display:flex;gap:10px}
.sp-dva>div{flex:1 1 0;min-width:0}
.sp-dva>.sp-nomer{flex:0 0 84px}
.sp-forma input[readonly]{color:var(--tusk);background:var(--ekran)}

/* число с единицей справа: «40 м», «1 500 ₽» */
.sp-s-ed{display:flex;align-items:center;gap:6px;min-height:52px;border:1.5px solid var(--liniya);border-radius:12px;background:var(--kartochka);padding:0 12px;transition:border-color .2s,box-shadow .2s}
.sp-s-ed:focus-within{border-color:var(--akcent);box-shadow:0 0 0 4px color-mix(in srgb,var(--akcent) 16%,transparent)}
.sp-s-ed:has([aria-invalid="true"]){border-color:var(--vozvrat-tekst)}
.sp-s-ed input{flex:1;min-width:0;border:0;background:transparent;color:var(--tekst);font:inherit;font-size:18px;font-weight:600;padding:12px 0;outline:none}
.sp-s-ed span{color:var(--tusk);font-weight:500;white-space:nowrap;max-width:5.5em;overflow:hidden;text-overflow:ellipsis}

.sp-sdelano{display:flex;flex-direction:column;gap:8px}
.sp-cifry{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}
.sp-cifry>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.sp-cifry b{font-size:18px;font-weight:600;color:var(--tekst);overflow-wrap:anywhere}
.sp-cifry small{font-size:13px;font-weight:400;color:var(--tusk)}

.sp-preduprezhdenie{background:var(--zhdyot-fon);color:var(--zhdyot-tekst);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.4}
.sp-summa:empty{display:none}
.sp-nelzya{text-align:center;padding:4px 8px}
#sp-udalit{min-height:48px}

:root[data-tema="temnaya"] .sp-s-ed{background:var(--ekran);border-color:var(--liniya)}
:root[data-tema="temnaya"] .sp-forma input[readonly]{background:var(--kartochka)}

/* Раздел «Сметы и КП». Цвета — только из общих переменных: оба основных цвета и обе темы
   (тёмная — правилами :root[data-tema="temnaya"], как во всём приложении). */

/* лист снизу */
.kp-list{position:fixed;inset:0;z-index:55;background:rgba(10,11,12,.5);display:flex;align-items:flex-end;justify-content:center}
.kp-list-okno{background:var(--kartochka);color:var(--tekst);width:100%;max-width:520px;max-height:90vh;max-height:90dvh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;box-shadow:0 -8px 30px rgba(0,0,0,.18)}
.kp-list-shapka{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 8px 6px 16px;font-size:17px}
.kp-list-telo{overflow-y:auto;overscroll-behavior:contain;padding:4px 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.kp-list-telo > *{flex-shrink:0}
.kp-list [hidden]{display:none !important}
.kp-list .tusk{margin-bottom:-4px}
.kp-x{flex:none;width:48px;height:48px;border:0;background:none;color:var(--tusk);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}
.kp-x:focus-visible,.kp-stroka:focus-visible,.kp-sp-p:focus-visible,.kp-vid-knopka:focus-visible{outline:2px solid var(--akcent);outline-offset:1px}
.kp-x:active{background:var(--ekran)}

/* список КП */
.kp-ssylka{flex-direction:row !important;align-items:center;gap:12px}
.kp-ssylka-ik{width:40px;height:40px;border-radius:12px;background:var(--akcent-tusk);color:var(--akcent);display:flex;align-items:center;justify-content:center;flex:none}
.kp-karta b{font-size:17px;font-weight:600;line-height:1.3}
.kp-karta-summa{font-weight:700;font-size:17px;text-align:right;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end}
.kp-karta-summa small{font-size:12px;font-weight:400;color:var(--tusk)}
.kp-izm{color:var(--zhdyot-tekst);background:var(--zhdyot-fon);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}

/* карточка во вкладке «Смета» объекта */
.kp-smeta-spisok{display:flex;flex-direction:column}
.kp-smeta-kp{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 0;border-top:1px solid var(--liniya);color:inherit;text-decoration:none}
.kp-smeta-kp:first-child{border-top:0}
.kp-smeta-kp b{font-weight:500;font-size:15px}
.kp-smeta-kp .num{font-weight:600;white-space:nowrap}

/* итоги КП */
.kp-itog-glavnoe{display:flex;flex-direction:column;gap:4px}
.kp-itog-ryady{margin:0;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--liniya);padding-top:10px}
.kp-itog-ryady div{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.kp-itog-ryady dt{color:var(--tusk)}
.kp-itog-ryady dd{margin:0;font-weight:600;text-align:right}
.kp-marzha dd{color:var(--ok-tekst)}
.kp-nastroyki{gap:12px}
.kp-nastr-ryad{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kp-nastr-ryad .pereklyuchatel{flex:0 1 220px}
.kp-procent{display:flex;align-items:center;gap:6px;flex:0 1 140px}
.kp-procent .pole{text-align:right;min-height:48px;padding:10px 12px}
.kp-procent span{color:var(--tusk);font-weight:600}
.kp-snimok{flex-direction:row !important;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;background:var(--zhdyot-fon);border-color:transparent;color:var(--zhdyot-tekst)}
.kp-snimok .tekst-knopka{color:inherit;padding:0}
.kp-skazat{min-height:56px}
.kp-skazat svg{flex:none}
.kp-deystviya{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kp-deystviya .knopka{min-width:0;font-size:15px;padding:0 10px;gap:6px}
.kp-deystviya .knopka svg{flex:none;color:var(--akcent)}
.kp-deystviya .knopka .tusk{font-size:13px}

/* разделы и строки */
.kp-razdel{display:flex;flex-direction:column;gap:6px}
.kp-razdel-shapka{display:flex;align-items:center;gap:8px;margin:4px 0 -4px}
.kp-razdel-shapka h2{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}
.kp-razdel-shapka .num{font-weight:600;white-space:nowrap}
.kp-stroki{padding:2px 14px;gap:0}
.kp-stroka{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:10px 0;border:0;border-top:1px solid var(--liniya);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.kp-stroka:first-child{border-top:0}
.kp-stroka:active{background:var(--ekran)}
.kp-stroka[data-skryt]{opacity:.55}
.kp-stroka-im{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kp-stroka-im b{font-weight:500;font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.kp-stroka-summa{font-weight:600;white-space:nowrap;font-size:15px}
.kp-zakupka{color:var(--ok-tekst)}
.kp-vid{flex:none;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.kp-vid-r{background:var(--akcent-tusk);color:var(--akcent)}
.kp-vid-m{background:var(--ekran);color:var(--tusk);box-shadow:inset 0 0 0 1.5px var(--liniya)}

/* поля в листах */
.kp-dva{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.kp-dva > div{display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-dva .tusk{margin:0}
.kp-dva .knopka{min-width:0}
.kp-summa-stroki{justify-content:flex-end;min-height:48px}
.kp-summa-stroki b{font-size:18px}
.kp-krupno{font-size:22px;font-weight:600}
.kp-sp-spisok{display:flex;flex-direction:column;max-height:34vh;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--liniya);border-radius:12px;padding:0 12px}
.kp-sp-spisok:has(> .melko:only-child){border:0;padding:0}
.kp-sp-p{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:8px 0;border:0;border-top:1px solid var(--liniya);background:none;color:inherit;font:inherit;font-size:15px;text-align:left;cursor:pointer}
.kp-sp-p:first-child{border-top:0}
.kp-sp-p b{font-weight:500}
.kp-sp-p .num{white-space:nowrap;font-weight:600}
.kp-sp-p[aria-pressed="true"]{color:var(--akcent)}
.kp-novyy-obekt{display:flex;flex-direction:column;gap:10px}

/* голос */
.kp-golos{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:8px 0 4px}
.kp-golos .zapis{margin:8px 0}
.kp-predl{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--liniya);padding-top:10px}
.kp-predl-str{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-top:1px solid var(--liniya)}
.kp-predl > b + .kp-predl-str{border-top:0}
.kp-predl-galka{flex:none;width:44px;height:44px;margin:-6px -6px 0 -10px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.kp-predl-galka input{width:22px;height:22px;accent-color:var(--akcent-knopka)}
.kp-vid-knopka{flex:none;border:0;background:none;padding:0;width:44px;height:44px;margin:-8px -6px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:10px}
.kp-predl-im{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kp-predl-im b{font-weight:500;font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.kp-predl-cena{display:flex;flex-direction:column;gap:3px;margin-top:4px}
.kp-predl-cena .pole{min-height:44px;padding:8px 10px;max-width:180px}
.kp-povtor{display:flex;flex-direction:column;gap:8px}
.kp-povtor[open]{gap:8px}
.kp-povtor > *:not(summary){margin-top:8px}
.kp-povtor summary{min-height:44px;display:flex;align-items:center}

/* целевая сумма: предпросмотр */
.kp-stolbec{display:flex;flex-direction:column;gap:10px}
.kp-stolbec:empty{display:none}
.kp-predpr{gap:8px;background:var(--ekran)}
.kp-stanet{color:var(--akcent);font-size:18px}

/* справочник */
.kp-filtr{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.kp-filtr .pill{flex:none}

/* тёмная тема */
:root[data-tema="temnaya"] .kp-list{background:rgba(0,0,0,.62)}
:root[data-tema="temnaya"] .kp-list-okno{box-shadow:0 -8px 30px rgba(0,0,0,.5);border-top:1px solid var(--liniya)}
:root[data-tema="temnaya"] .kp-predpr{background:var(--ekran);border-color:var(--liniya)}
:root[data-tema="temnaya"] .kp-vid-m{background:var(--ekran);color:var(--tusk)}
:root[data-tema="temnaya"] .kp-snimok{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
:root[data-tema="temnaya"] .kp-zakupka,:root[data-tema="temnaya"] .kp-marzha dd{color:var(--ok-tekst)}

/* === Рабочее место «Снабжение» (31.10.2026, snab.js): плотно, как в «Проге» — таблицы, полосы, метки «цвет + слово».
   На компьютере (от 1180 px) — три колонки: заявки · проценка · переписка; на телефоне — по одной. Цвета — токены приложения. */
.snab-telo{padding:0;gap:0}
.snab-vkl{display:flex;gap:6px;padding:8px 12px;background:var(--kartochka);border-bottom:1px solid var(--liniya);overflow-x:auto;flex:none}
.snab-vkl a{flex:none;padding:7px 14px;border-radius:999px;border:1px solid var(--liniya);color:var(--tekst);text-decoration:none;font-weight:500;font-size:14px;white-space:nowrap}
.snab-vkl a.on{background:var(--akcent-knopka);border-color:var(--akcent-knopka);color:#fff}
.snab-bejdzh{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#E5484D;color:#fff;font:600 11px/18px inherit;font-style:normal;text-align:center}
.snab-rm{display:flex;flex-direction:column;flex:1;min-height:0}
.snab-kol{display:flex;flex-direction:column;min-height:0;background:var(--ekran)}
.snab-pravo{display:none}
.snab-rm.s-zayavkoy .snab-levo{display:none}
.snab-rm:not(.s-zayavkoy) .snab-centr{display:none}
.snab-odna{display:flex;flex-direction:column;gap:12px;padding:12px;flex:1;min-height:0}
.snab-chat-odna{padding:0}
.snab-kol-shapka{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--kartochka);border-bottom:1px solid var(--liniya)}
.snab-chat-shapka{flex-direction:row;align-items:center;gap:10px}
.snab-poisk,.snab-obekt{min-height:40px;font-size:15px}
.snab-chipy{display:flex;gap:6px;flex-wrap:wrap}
.snab-chipy button{display:flex;gap:6px;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);font:inherit;font-size:13px;cursor:pointer}
.snab-chipy button span{color:var(--tusk);font-variant-numeric:tabular-nums}
.snab-chipy button[aria-pressed="true"]{background:var(--tekst);border-color:var(--tekst);color:var(--kartochka)}
.snab-chipy button[aria-pressed="true"] span{color:inherit;opacity:.7}
.snab-spisok{overflow:auto;flex:1}
.snab-z{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-bottom:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);text-decoration:none;border-left:4px solid transparent}
.snab-z:hover{background:color-mix(in srgb,var(--akcent) 5%,var(--kartochka))}
.snab-z.on{border-left-color:var(--akcent-knopka);background:color-mix(in srgb,var(--akcent) 9%,var(--kartochka))}
.snab-z-verh{display:flex;gap:8px;align-items:center}.snab-z-k{margin-left:auto;font-size:13px;color:var(--tusk)}
.snab-z-naz{font-size:14px;line-height:1.3}
.snab-z-niz{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--tusk)}.snab-z-niz .cifry{margin-left:auto;color:var(--tekst)}
.cifry{font-variant-numeric:tabular-nums;white-space:nowrap}
.mono{font-family:ui-monospace,"IBM Plex Mono",monospace}
.snab-etap{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--tusk) 14%,transparent);white-space:nowrap}
.snab-etap.e-zhd{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.snab-etap.e-pr{background:#E0E7FF;color:#3730A3}
.snab-etap.e-rab{background:#D6ECF3;color:#0F4C61}
.snab-etap.e-ok{background:var(--ok-fon);color:var(--ok-tekst)}
.snab-etap.e-ruk{background:#FDEBC8;color:#8A4B00}
.snab-m{display:inline-block;font-size:11px;font-weight:600;padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--tusk) 12%,transparent)}
.snab-m.zel{background:var(--ok-fon);color:var(--ok-tekst)}
.snab-m.krasno{background:var(--vozvrat-fon);color:var(--vozvrat-tekst)}
.snab-m.ogon{background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.snab-pusto{padding:24px 16px;color:var(--tusk);text-align:center}
.snab-centr{overflow:auto;padding:12px;gap:12px}
.snab-centr > *,.snab-odna > *{flex:none}
.snab-odna > .snab-lenta{flex:1}
.snab-z-shapka{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.snab-z-shapka h2{margin:0 0 4px;font-size:19px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.snab-deystviya{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 10px;background:var(--kartochka);border-radius:12px;border:1px solid var(--liniya)}
.snab-deystviya .knopka.malaya,.snab-gr-kn .knopka.malaya,.snab-vvod .knopka.malaya{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}
.snab-raspor{flex:1}
.snab-gruppa{background:var(--kartochka);border:1px solid var(--liniya);border-radius:12px;overflow:hidden;border-left:4px solid var(--liniya)}
.snab-gruppa.est{border-left-color:var(--ok)}
.snab-gr-shapka{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:10px 12px;background:color-mix(in srgb,var(--tusk) 5%,var(--kartochka))}
.snab-gr-kn{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.snab-tab-obertka{overflow-x:auto}
.snab-tab{width:100%;border-collapse:collapse;font-size:13px}
.snab-tab th{position:sticky;top:0;text-align:left;font-weight:600;font-size:12px;color:var(--tusk);padding:6px 8px;background:var(--kartochka);border-bottom:1px solid var(--liniya);white-space:nowrap}
.snab-tab td{padding:6px 8px;border-bottom:1px solid var(--liniya);vertical-align:top}
.snab-tab tr:hover td{background:color-mix(in srgb,var(--akcent) 4%,transparent)}
.snab-tab tr.vybr td{background:color-mix(in srgb,var(--ok) 10%,transparent)}
.snab-tab tr.vybr td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.snab-tab a{color:var(--tekst)}
.snab-radio{width:28px;height:28px;border-radius:50%;border:1px solid var(--liniya);background:var(--kartochka);color:var(--ok);font-size:16px;cursor:pointer;line-height:1}
.snab-radio[aria-pressed="true"]{border-color:var(--ok)}
.snab-x{border:0;background:none;color:var(--tusk);cursor:pointer;font-size:16px;min-width:32px;min-height:32px;border-radius:8px}
.snab-x:hover{background:color-mix(in srgb,var(--tusk) 12%,transparent)}
.snab-net-predl{padding:10px 12px}
.snab-kand{border-top:1px dashed var(--liniya);padding:8px 12px;background:color-mix(in srgb,var(--pravka) 5%,var(--kartochka))}
.snab-kand .knopka.malaya{min-height:32px;min-width:32px;padding:0 10px}
.snab-itog{background:var(--kartochka);border:1px solid var(--liniya);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.snab-itog h3{margin:0;font-size:16px}
.snab-chat-ryad{display:flex;gap:10px;align-items:center;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--liniya);background:var(--kartochka);color:var(--tekst);font:inherit;text-align:left;cursor:pointer}
.snab-chat-ryad .sr{display:flex;flex-direction:column;min-width:0;flex:1}.snab-chat-ryad .melko{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snab-ava{flex:none;width:36px;height:36px;border-radius:50%;background:#0F766E;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.snab-podkl{padding:10px 12px;background:var(--zhdyot-fon);color:var(--zhdyot-tekst);font-size:13px;display:flex;flex-direction:column;gap:6px}
.snab-lenta{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:200px}
.snab-soob{max-width:85%;padding:8px 10px;border-radius:12px;display:flex;flex-direction:column;gap:4px;font-size:14px}
.snab-soob.vh{align-self:flex-start;background:var(--kartochka);border:1px solid var(--liniya)}
.snab-soob.ish{align-self:flex-end;background:color-mix(in srgb,var(--pravka) 14%,var(--kartochka))}
.snab-soob-t{white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}
.snab-soob a{color:inherit}
.snab-ssylka{border:0;background:none;color:var(--akcent);font:inherit;font-weight:600;cursor:pointer;padding:0}
.snab-vvod{display:flex;gap:6px;align-items:flex-end;padding:8px;background:var(--kartochka);border-top:1px solid var(--liniya)}
.snab-vvod textarea{flex:1;min-height:40px;resize:vertical;font-size:15px}
.snab-skrepka{display:flex;align-items:center;justify-content:center;width:40px;height:40px;cursor:pointer;font-size:18px}
.snab-k-zayavke{padding:0 10px 8px;background:var(--kartochka)}
.snab-post{display:flex;flex-direction:column;gap:4px;color:var(--tekst);text-decoration:none}
.snab-forma{display:flex;flex-direction:column;gap:8px}
.snab-galka{display:flex;gap:8px;align-items:center;font-size:15px}
.snab-okno-log{border:1px solid var(--liniya);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px}
.snab-okno-log .ryad{flex-wrap:wrap;align-items:center}
.snab-okno-log .pole{min-height:38px;width:auto}
.snab-dni{display:flex;gap:4px;flex-wrap:wrap}
.snab-dni label{display:flex;align-items:center;gap:3px;padding:4px 8px;border:1px solid var(--liniya);border-radius:8px;font-size:14px;cursor:pointer}
.snab-dni label:has(input:checked){background:var(--akcent-tusk);border-color:var(--akcent)}
.snab-sejchas{padding:8px 10px;border-radius:10px;background:var(--ok-fon);color:var(--ok-tekst);font-size:14px}
.snab-plan .pl-kol{width:90px;min-height:34px;padding:4px 8px;text-align:right}
.snab-plan .knopka.malaya{min-height:32px;min-width:36px;padding:0 8px}
.snab-okno{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center}
.snab-okno-telo{background:var(--kartochka);color:var(--tekst);width:100%;max-width:560px;max-height:90vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px;display:flex;flex-direction:column;gap:10px}
.snab-okno-telo h3{margin:0}
.snab-okno-telo select.pole{min-height:44px}
.snab-galki{display:flex;flex-direction:column;gap:8px}.snab-galki label,.snab-zak-post{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.snab-tekst{white-space:pre-wrap;font:13px/1.4 inherit;background:var(--ekran);padding:10px;border-radius:10px;max-height:240px;overflow:auto;-webkit-user-select:text;user-select:text}
.snab-zak-itog{display:flex;flex-direction:column;gap:6px}

/* компьютер: три колонки, как в «Проге» */
@media (min-width:1180px){
  .s-bokom .ekran .telo.snab-telo{padding-left:0;padding-right:0}
  .s-bokom .ekran:has(.snab-telo) .shapka{padding-left:20px;padding-right:20px}
  .s-bokom .ekran .snab-odna{padding:16px 24px;max-width:1280px;width:100%;box-sizing:border-box;margin:0 auto}
  .snab-telo{overflow:hidden}
  .snab-rm{display:grid;grid-template-columns:320px minmax(0,1fr) 340px;flex:1;min-height:0}
  .snab-rm .snab-levo,.snab-rm.s-zayavkoy .snab-levo{display:flex;border-right:1px solid var(--liniya)}
  .snab-rm .snab-centr,.snab-rm:not(.s-zayavkoy) .snab-centr{display:flex}
  .snab-rm .snab-pravo{display:flex;border-left:1px solid var(--liniya)}
  .snab-vyberi{margin:auto}
  .snab-okno{align-items:center}.snab-okno-telo{border-radius:18px}
}

/* выбор рабочего места */
.mesta{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.mesto-plitka{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;border-radius:16px;border:2px solid var(--liniya);background:var(--kartochka);color:var(--tekst);font:inherit;text-align:left;cursor:pointer}
.mesto-plitka b{font-size:17px}
.mesto-plitka.on{border-color:var(--akcent-knopka);background:color-mix(in srgb,var(--akcent) 7%,var(--kartochka))}
.mesto-znak{font-size:28px;line-height:1}

/* телефон: предложение — карточкой в три строки, «Приедет» всегда на виду */
@media (max-width:700px){
  .snab-predl thead{display:none}
  .snab-predl tr{display:grid;grid-template-columns:34px minmax(0,1fr) auto 32px;grid-template-areas:"r p c x" "r t s x" "r n d x";gap:2px 8px;padding:8px 10px;border-bottom:1px solid var(--liniya)}
  .snab-predl td{border:0;padding:0;background:none!important}
  .snab-predl tr.vybr{background:color-mix(in srgb,var(--ok) 10%,transparent);box-shadow:inset 3px 0 0 var(--ok)}
  .snab-predl td:nth-child(1){grid-area:r}.snab-predl td:nth-child(2){grid-area:p}.snab-predl td:nth-child(3){grid-area:t;font-size:12px;color:var(--tusk)}
  .snab-predl td:nth-child(4){grid-area:c;text-align:right;font-weight:700}.snab-predl td:nth-child(5){grid-area:s;text-align:right;color:var(--tusk)}
  .snab-predl td:nth-child(6){grid-area:n;font-size:12px}.snab-predl td:nth-child(7){grid-area:d;text-align:right}.snab-predl td:nth-child(8){grid-area:x}
  .snab-predl td:nth-child(5)::before{content:"сумма "}
  .snab-predl td:nth-child(7)::before{content:"🚚 "}
  .snab-gr-shapka{flex-direction:column}.snab-gr-kn{justify-content:flex-start}
  .snab-z-shapka{flex-direction:column}
}
.snab-proizv{border:1px solid var(--liniya);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}
.snab-proizv .ryad{flex-wrap:wrap;gap:6px;margin-top:4px}
.snab-proizv-vyvod{margin:0;line-height:1.4}

/* свой МАКС снабжения (31.10.2026) */
.snab-akk{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:10px;border:1px dashed var(--liniya);font-size:13px;line-height:1.35}
.snab-akk.ok{border-style:solid;border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:var(--ok-fon);color:var(--ok-tekst)}
.snab-akk.net{border-style:solid;background:var(--zhdyot-fon);color:var(--zhdyot-tekst)}
.snab-akk .ryad{flex:none;gap:4px;align-items:center}
.snab-qr{display:flex;justify-content:center;padding:8px}
.snab-shagi{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.snab-akk{flex-direction:column;align-items:stretch}
.snab-akk > .knopka,.snab-akk .ryad{align-self:flex-start}
.snab-chat-ryad .sr .snab-bejdzh,.snab-vkl .snab-bejdzh{align-self:flex-start;width:auto;flex:none}
.snab-gruz{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:8px 0;border-top:1px solid var(--liniya);font-size:14px}
.snab-gruz .ryad{flex:none;align-items:center;gap:6px}
.mesto-punkt .ik img,.mesto-znak img{display:block;width:100%;height:100%}.mesto-znak{width:40px;height:40px}.mesto-punkt .ik{overflow:hidden}
.snab-men{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--liniya)}
.snab-men .ryad{flex:none;gap:4px;align-items:center}
.snab-men-novyy{display:flex;flex-direction:column;gap:8px}
.snab-men-novyy[open]{gap:8px}.snab-men-novyy > *{margin-top:6px}
/* один материал заявки (правка №116): список материалов в центре и возврат к нему */
.snab-maty{gap:6px}
.snab-mat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--liniya);border-radius:10px;color:inherit;text-decoration:none}
.snab-mat:hover{border-color:var(--tusk)}.snab-mat.est{border-left:3px solid #0F766E}
.snab-mat-naz{font-weight:600;overflow-wrap:anywhere}
.snab-mat-nazad{padding:2px 0}
/* Правка №114: поиск поставщика, действия по нажатию (товары, написать), входы в кабинеты под юрлицом */
.snab-post-kn{flex-wrap:wrap;gap:6px}
.snab-post-verh{all:unset;display:flex;flex-direction:column;gap:4px;cursor:pointer;width:100%}
.snab-post-verh:focus-visible{outline:2px solid var(--akcent-knopka);outline-offset:2px;border-radius:6px}
.snab-post-deystviya{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--liniya)}
.snab-post-poisk{flex-wrap:wrap;gap:6px}
.snab-post-poisk input{flex:1 1 220px;min-width:0}
.snab-yu{display:inline-flex;align-items:center;gap:6px}
.snab-yu select{width:auto;min-width:140px;padding:4px 8px}
/* группы и подгруппы материалов заявки (правка №127) */
.snab-gr-zag{font-size:16px;padding:10px 2px 2px;border-bottom:2px solid var(--liniya)}
.snab-podgr{display:flex;flex-direction:column;gap:6px;padding:4px 0 6px 10px;border-left:3px solid color-mix(in srgb,var(--tusk) 25%,transparent)}
.snab-podgr-shapka{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:4px 0}
.snab-podgr-shapka .knopka.malaya{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}
.snab-proizv-spisok{margin:2px 0;padding-left:20px;max-height:180px;overflow:auto}
/* Проценка подгруппы по сайтам — карточки товаров с фото, корзина, КП (правка №129) */
.snab-foto{display:block;object-fit:contain;background:#fff;border-radius:8px}
.snab-foto.mal{width:44px;height:44px;flex:none;border:1px solid var(--liniya)}
.snab-s-foto{display:flex;gap:8px;align-items:flex-start}
.snab-okno-telo.snab-okno-shir{max-width:960px}
.snab-proc-mat{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--liniya)}
.snab-tovary{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,200px);gap:8px;overflow-x:auto;padding-bottom:4px}
.snab-tovar{display:flex;flex-direction:column;gap:3px;border:1px solid var(--liniya);border-radius:12px;padding:8px;background:var(--kartochka)}
.snab-tovar.v{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,var(--kartochka))}
.snab-tovar-foto{height:110px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px}
.snab-tovar-foto .snab-foto{max-width:100%;max-height:110px}
.snab-tovar-naz{font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.snab-tovar .knopka.malaya{min-height:36px;margin-top:auto}
.snab-proc-niz{position:sticky;bottom:-16px;background:var(--kartochka);padding:8px 0;border-top:2px solid var(--liniya)}
.snab-proc-kn{flex-wrap:wrap}
@media print{
  body.snab-pechat>:not(.snab-okno){display:none!important}
  body.snab-pechat .snab-okno{position:static;background:none;display:block}
  body.snab-pechat .snab-okno-telo{max-width:none;max-height:none;overflow:visible;box-shadow:none}
  body.snab-pechat .snab-proc-kn{display:none}
}

/* === Рабочее место ПТО (31.10.2026, pto.js): воронки работ, как сделки в amoCRM. Плотно, один акцент, метки «цвет + слово». */
.pto-blok{background:var(--kartochka);border:1px solid var(--liniya);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;color:var(--tekst);text-decoration:none}
.pto-blok h3{margin:0;font-size:15px}
.pto-setka{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.pto-pl{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid var(--liniya);border-left:3px solid var(--liniya);border-radius:8px;background:var(--kartochka);color:var(--tekst);text-decoration:none;font-size:14px;cursor:pointer}
.pto-pl:hover{background:color-mix(in srgb,var(--akcent) 5%,var(--kartochka))}
.pto-pl.cv-zheltyy{border-left-color:var(--zhdyot)}.pto-pl.cv-krasnyy{border-left-color:#D93025}.pto-pl.cv-ok{border-left-color:var(--ok)}
.pto-pl.tashchu{opacity:.5}
.pto-metki{display:flex;gap:4px;flex-wrap:wrap}.pto-metki i{font-style:normal}
.pto-sob{display:block;padding:6px 0;border-top:1px solid var(--liniya);font-size:14px;color:var(--tekst);text-decoration:none}
.pto-kanban-obertka{max-width:none!important}
.pto-kanban{display:flex;gap:10px;overflow-x:auto;align-items:flex-start;padding-bottom:6px}
.pto-kol{flex:0 0 250px;background:color-mix(in srgb,var(--tusk) 6%,var(--ekran));border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:120px}
.pto-kol header{display:flex;flex-direction:column;gap:2px;padding:2px 2px 6px;border-bottom:1px solid var(--liniya)}
.pto-kol.nad{outline:2px dashed var(--akcent);outline-offset:-2px}
.pto-kol-spisok{display:flex;flex-direction:column;gap:6px}.pto-pusto{text-align:center;padding:8px}
.pto-obekt{min-height:38px;width:auto;max-width:280px}
.pto-k-shapka{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding-left:10px;border-left:4px solid var(--liniya)}
.pto-k-shapka.cv-zheltyy{border-left-color:var(--zhdyot)}.pto-k-shapka.cv-krasnyy{border-left-color:#D93025}.pto-k-shapka.cv-ok{border-left-color:var(--ok)}
.pto-k-shapka h2{margin:0 0 4px;font-size:19px}
.pto-etapy{display:flex;gap:4px;list-style:none;margin:0;padding:0;overflow-x:auto}
.pto-etapy li{flex:1 0 auto;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--tusk) 10%,transparent);font-size:12px;white-space:nowrap;color:var(--tusk)}
.pto-etapy li.proshel{background:var(--ok-fon);color:var(--ok-tekst)}.pto-etapy li.tut{background:var(--akcent-knopka);color:#fff;font-weight:600}
.pto-perehod{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pto-perehod .knopka.malaya,.pto-blok .knopka.malaya{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}
.pto-k-setka{display:grid;grid-template-columns:1fr;gap:10px}
.pto-ob{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.pto-ob .pole{min-height:38px;text-align:right}
.pto-blok label.melko{display:flex;flex-direction:column;gap:3px}.pto-blok .pole{min-height:38px}
.pto-lenta{display:flex;flex-direction:column;max-height:520px;overflow:auto}
.pto-sob.v-etap{border-left:3px solid var(--akcent);padding-left:6px}.pto-sob.v-dok{border-left:3px solid var(--ok);padding-left:6px}
.pto-zad{display:block;padding:6px 0;color:var(--tekst);text-decoration:none;font-size:14px}.pto-zad.gotovo{opacity:.6;text-decoration:line-through}
.pto-dok{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:6px 0;border-top:1px solid var(--liniya);font-size:14px}
.pto-dok .pole{width:auto;min-height:34px}
.pto-dob{display:flex;flex-direction:column;gap:6px}.pto-dob > *{margin-top:6px}
.pto-svodka{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
@media (min-width:1180px){ .pto-k-setka{grid-template-columns:300px minmax(0,1fr) 340px} }
@media (max-width:700px){ .pto-kanban{flex-direction:column}.pto-kol{flex:none;width:100%}.pto-ob{grid-template-columns:repeat(2,1fr)} }
.pto-ob label.melko{justify-content:flex-end}
.pto-tochka{display:flex;flex-direction:column;gap:4px;padding:8px 0 8px 10px;border-top:1px solid var(--liniya);border-left:3px solid transparent}
.pto-tochka.cv-krasnyy{border-left-color:#D93025}.pto-tochka.cv-zheltyy{border-left-color:var(--zhdyot)}.pto-tochka.cv-ok{border-left-color:var(--ok)}
.pto-tochka-gal{display:flex;gap:8px;align-items:flex-start;font-size:14px}.pto-tochka-gal input{width:20px;height:20px;flex:none;margin-top:1px}
.pto-tochka .ryad .pole{width:auto;min-height:36px}.pto-tochki-ssylka{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}
.pto-obyaz{padding:6px 0;border-top:1px solid var(--liniya);gap:12px}.pto-obyaz span:last-child{text-align:right;color:var(--tusk)}
.pto-razdel{border-top:1px solid var(--liniya);padding-top:6px}.pto-razdel summary{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;min-height:40px;padding:6px 0;cursor:pointer;list-style:none}
.pto-razdel summary::-webkit-details-marker{display:none}.pto-razdel summary::before{content:'▸';color:var(--tusk)}.pto-razdel[open] summary::before{content:'▾'}
.pto-razdel .pto-setka{padding-bottom:6px}

/* «Настроить под себя» и быстрый поиск помещений (moy-vid.js, 01.11.2026) */
.vid-nastroit{border:0;background:transparent;font-size:18px;line-height:1;padding:6px 8px;cursor:pointer;border-radius:8px;margin-left:auto;color:inherit}
.vid-nastroit:hover,.vid-nastroit:focus-visible{background:var(--liniya)}
.pm-shapka{position:relative}.pm-shapka .vid-nastroit{position:absolute;top:8px;right:8px}
.vid-poisk{position:relative;z-index:40;margin:6px 0 10px}
.vid-poisk .pole{width:100%}
.vid-poisk-itog{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--kartochka);border:1px solid var(--liniya);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:60vh;overflow:auto;padding:4px}
.vid-poisk-itog a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;color:inherit;text-decoration:none}
.vid-poisk-itog a:hover,.vid-poisk-itog a:focus-visible{background:var(--liniya)}
.vid-poisk-itog>.melko{padding:10px 12px}
.vid-okno h4{margin:6px 0 2px}
.vid-perekl{display:flex;gap:8px;flex-wrap:wrap}
.vid-razdel{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--liniya);padding-top:8px}
.vid-spisok{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.vid-str{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:4px 0}
.vid-str label{display:flex;align-items:center;gap:8px;flex:1;min-height:40px}
.vid-strelki{display:flex;gap:4px}.vid-strelki .knopka{min-width:40px;padding:6px}
.vid-galki{display:flex;flex-wrap:wrap;gap:6px 14px}.vid-galki label{display:flex;align-items:center;gap:6px;min-height:36px}
.vid-vkl{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:600}
.snab-vkl .vid-nastroit{flex:none;position:sticky;right:0;background:var(--kartochka)}
.snab-telo>.vid-poisk{margin:8px 12px 0;flex:none}

/* «Переменные ИД» и АОСР из переменных (pto-id.js, 01.11.2026) */
.idp-org,.idp-pred{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--liniya)}
.idp-org{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.idp-org label:first-child,.idp-org label:nth-child(4){grid-column:1/-1}
.idp-org .ryad{grid-column:1/-1}
.idp-pred-setka{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.idp-net ul{margin:6px 0 0;padding-left:20px;font-size:14px}.idp-net summary{cursor:pointer}
.idp-pod{display:flex;flex-direction:column;gap:3px;padding:6px 0;border-top:1px solid var(--liniya);font-size:14px}
.idp-spr{display:flex;flex-direction:column;max-height:50vh;overflow:auto}.idp-spr-str{text-align:left;background:none;border:0;border-top:1px solid var(--liniya);cursor:pointer}
.idp-akt textarea.pole{min-height:auto}

/* Оформление по комплекту дизайна 1.2 (05.10.2026): основной цвет Терракота / Синий и тема Светлая / Тёмная —
   независимо, четыре сочетания. Выбор — в «Меню → Оформление», хранится в телефоне (sd-tema, sd-akcent).
   --akcent — надписи, ссылки, значки (в тёмной — светлый оттенок); --akcent-knopka — заливка кнопок и знака.
   Смысловые цвета статусов (красный, жёлтый, зелёный, фиолетовый) от выбора не зависят. */
:root{--akcent:#C2410C;--akcent-knopka:#C2410C;--akcent-nazhat:#A8380A;--akcent-tusk:#FBE7DD}
:root[data-akcent="sinij"]{--akcent:#43539F;--akcent-knopka:#43539F;--akcent-nazhat:#35427F;--akcent-tusk:#E9ECF8}
:root[data-tema="temnaya"]{
  --fon:#141718;--ekran:#141718;--kartochka:#202425;--liniya:#3A4142;
  --tekst:#F3F4F0;--tusk:#B7BDBA;
  --akcent:#F5A27D;--akcent-knopka:#C2410C;--akcent-nazhat:#A8380A;--akcent-tusk:#3B261E;
  --ok:#46AF68;--ok-fon:#1E3326;--ok-tekst:#AFE3BD;
  --zhdyot:#E9B752;--zhdyot-fon:#3B3020;--zhdyot-tekst:#F6D88F;
  --vozvrat-fon:#3E2521;--vozvrat-tekst:#FFB5A7;--pravka:#6797FF;
}
:root[data-tema="temnaya"][data-akcent="sinij"]{--akcent:#A7B5F3;--akcent-knopka:#43539F;--akcent-nazhat:#35427F;--akcent-tusk:#252C49}
:root[data-tema="svetlaya"]{color-scheme:light}

/* Знак «Стык» на входе */
.logo .kv{background:var(--akcent-knopka)}
.logo .kv svg{width:34px;height:34px}

/* Меню → Оформление */
.oformlenie{display:flex;flex-direction:column;gap:12px}
.oformlenie .podpis{font-size:14px;color:var(--tusk);margin:0 0 6px}
.pereklyuchatel{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--ekran);border:1px solid var(--liniya);border-radius:14px;padding:4px}
.pereklyuchatel button{min-height:48px;border:0;border-radius:11px;background:transparent;color:var(--tekst);font:inherit;font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.pereklyuchatel button[aria-checked="true"]{background:var(--kartochka);box-shadow:0 1px 2px rgba(0,0,0,.12),0 2px 8px -2px rgba(0,0,0,.18);font-weight:600}
.pereklyuchatel button:focus-visible{outline:2px solid var(--akcent);outline-offset:2px}
.pereklyuchatel .krug{width:18px;height:18px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
