.live-anonymous{margin:0}
.live-anonymous #nav,.live-anonymous .topbar{display:none}
.live-anonymous .app{min-height:100vh;min-height:100dvh}
.live-anonymous .content{width:100%;margin:0}
.live-anonymous main{display:grid;place-items:center;flex:1;padding:24px 16px}
.live-anonymous #view{max-width:400px}
.live-login{width:100%;margin:0;display:grid;gap:18px}
.live-login .input{width:100%}
.live-login label,.live-form label{display:flex;flex-direction:column;gap:7px}
.live-form{display:grid;gap:16px;max-width:900px}
.live-form.live-check-form{gap:12px}
.live-check-form p,.live-check-form h3{margin:0}
.live-form.live-check-form label.check{flex-direction:row;align-items:center;min-height:32px}
.live-check-form details .stack{margin-top:12px}
.live-check-form [data-check-summary]{display:grid;gap:8px}
.live-form .grid2{align-items:start}
.live-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.live-filters label{display:grid;gap:6px}
.live-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.live-cards .card{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.live-cards h2{margin:0}
.live-selection{display:flex;gap:10px;overflow:auto;padding-bottom:8px}
.live-selection a{white-space:nowrap}
.live-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.live-checks .stack{gap:8px}
.live-checks .card{min-width:0}
.live-checks p{margin:0}
.live-error{color:var(--bad,#ba3333)}
.live-personal{border-left:3px solid var(--accent);padding-left:14px}
.live-preview{max-height:320px;overflow:auto}
.live-preview table{white-space:nowrap}

.live-form .btn{justify-self:start}
.live-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.live-progress{width:min(100%,580px);height:20px;accent-color:var(--accent)}
.live-selection .chip{display:inline-flex;align-items:center;text-decoration:none;flex-shrink:0}
:root .live-selection .chip[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
#toast #toastUndo{color:inherit;border-color:currentColor;flex-shrink:0}
#toast{width:max-content}
.live-filters label,.live-form label{min-width:0;max-width:100%}
.live-filters .input,.live-toolbar .input{max-width:100%}
.live-cards h2,.live-checks a,#view h1,#view .stack p{overflow-wrap:anywhere}
@media(max-width:480px){
  .live-filters label{flex:1 1 100%}
  .live-filters .input,.live-toolbar select{width:100%}
  .live-form{max-width:100%}
  .live-toolbar{min-width:0}
  .live-form .grid2{grid-template-columns:minmax(0,1fr)}
  #toast{align-items:flex-start}
}
[hidden]{display:none!important}
.live-company-head{flex-direction:column;align-items:flex-start}
.live-filters{display:block}
.live-search-row,.live-filter-chips,.live-pagination{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.live-search{flex:1;max-width:580px!important}
.live-search .input{width:100%}
.live-filters .live-signal-toggle{display:flex;align-items:center;gap:8px;align-self:center}
.live-filter-panel{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:12px}
.live-filter-chips{align-items:center}
.live-filter-chips .chip{cursor:pointer;color:var(--text);font:inherit}
.live-sort{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;padding:0;text-align:inherit}
.live-pagination{align-items:center;justify-content:space-between}
.live-pagination label{display:flex;gap:8px;align-items:center}
.live-dialog{width:min(100% - 32px,900px);max-height:85vh;overflow:auto;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:24px}
.live-dialog::backdrop{background:#0008}
.live-dialog>.head{margin-bottom:20px}
.live-selection-status p{margin:6px 0}
@media(max-width:480px){.live-search{flex-basis:100%}.live-dialog{padding:16px}.live-filter-panel label{flex-basis:100%}.live-pagination .live-toolbar{gap:8px}}

/* Кнопки сортировки наследуют тот же регистр, что и остальные заголовки. */
.live-sort{text-transform:inherit;letter-spacing:inherit}
.live-selection-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.live-selection-status p{flex-basis:100%}

/* Рабочие экраны используют размеры, стекло и контролы оболочки v2. */
.live-dd{max-width:100%;align-self:flex-start}
.live-native-select{display:none!important}
.live-dd .dd-btn{width:max-content;max-width:100%;gap:20px;font-weight:400}
.live-dd .dd-menu{z-index:30;min-width:100%;max-width:min(420px,85vw)}
.live-filter-panel{box-shadow:none!important;border-radius:0!important;padding:12px 0 0;background:transparent}
.live-search-row{align-items:center}
.live-search{flex:1 1 220px;max-width:320px!important}
.live-filters label{font-size:13px;font-weight:600;color:var(--muted)}
.live-filter-panel label{gap:6px}
.live-signal-toggle input{appearance:none;flex:none;width:34px;height:20px;border-radius:999px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s}
.live-signal-toggle input:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}
.live-signal-toggle input:checked{background:var(--accent)}
.live-signal-toggle input:checked:before{transform:translateX(14px)}
.sglayout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
.live-checks .card{padding:14px 16px}
.live-progress{height:8px;border:0;border-radius:999px;overflow:hidden;background:var(--line);appearance:none}
.live-progress::-webkit-progress-bar{background:var(--line)}
.live-progress::-webkit-progress-value{background:var(--accent);border-radius:999px}
.live-preview{padding:1px}
.live-preview .tblw{overflow:visible}
.live-dialog>.head{gap:12px}
.live-dialog{box-shadow:0 20px 80px #0003}
#view details.card>summary{cursor:pointer;list-style:none}
#view details.card>summary::-webkit-details-marker{display:none}
#view details.card:not([open])>:not(summary){display:none}
.live-cards h2{font-size:17px}.live-cards h2 a{color:var(--text);text-decoration:none}
.live-cards h2 a:hover{color:var(--accent)}
@media(max-width:900px){.sglayout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.live-search{max-width:none!important}.live-dd{max-width:100%}.live-filter-panel label .live-dd{width:max-content}.live-pagination{align-items:flex-start}.live-checks{grid-template-columns:minmax(0,1fr)}}

.live-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:12px}

.live-reason p{margin:0}.live-reason .row.small{gap:6px 16px}.live-reason summary{gap:8px}

/* Панель фильтров — компактная сетка, как в прототипе (не колонка на всю высоту). */
.live-filters.card{flex-direction:column;align-items:stretch}
.live-filter-panel:not([hidden]){display:grid!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 16px;align-items:end;justify-items:start}
.live-filter-panel label{width:100%}
.live-filter-panel .live-dd,.live-filter-panel .live-dd .dd-btn{width:100%}
.live-filter-panel>.btn{justify-self:start}
.live-filter-panel label{min-width:0;overflow:hidden}
.live-filter-panel .live-dd .dd-btn{min-width:0;overflow:hidden;white-space:nowrap;display:flex;justify-content:space-between;align-items:center}

/* Знак платного сигнала: почти невидимый ₽, условия — во всплывающей подсказке. */
.rub{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;color:var(--muted);opacity:.55;cursor:help;padding:2px 3px;border-radius:4px}
.rub:hover,.rub:focus-visible{opacity:1;outline:none}
.rub:hover::after,.rub:focus-visible::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);z-index:40;width:max-content;max-width:300px;white-space:normal;padding:8px 10px;border-radius:10px;background:var(--text);color:var(--bg);font-size:12px;font-weight:400;line-height:1.4;box-shadow:0 6px 20px #0003}

/* Карточка сигнала в формате Gradly: поле — подпись сверху, пояснение снизу. */
.sigform{gap:14px}
.sigform .sigmeta{display:flex;flex-direction:column;gap:2px}
.sigform .sigmeta b{font-weight:600;color:var(--text-2,var(--text))}
.sigform .sigfields{gap:14px;max-width:560px}
.sigform .field{display:flex;flex-direction:column;gap:6px;max-width:560px}
.sigform .field>label,.sigform .field>.flabel{font-weight:600;color:var(--text)}
.sigform .field .input.num{width:160px}
.sigform .sw{align-items:flex-start;text-align:left}
.sigsep{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}

.sgopen{grid-column:1/-1}
.sgopen .sigform{border:1.5px solid var(--accent);box-shadow:0 8px 24px #0001}
.sgcard{cursor:pointer}

.sgcard{transition:box-shadow .15s,border-color .15s}
.sgcard:hover{box-shadow:0 6px 18px #0002;border-color:var(--accent)}
.sgcard .sgfoot{margin-top:auto;padding-top:6px;gap:8px}
.sgcard .sgmore{color:var(--accent);font-weight:600}

/* Сигналы: категории | компактный список | закреплённая панель настроек. */
.sgmaster{display:grid;grid-template-columns:200px minmax(280px,1fr) minmax(340px,1.15fr);gap:20px;align-items:start}
.sglist{display:flex;flex-direction:column;gap:18px;min-width:0}
.sglist h2{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0}
.sgrows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card,var(--bg))}
.sgrow{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--line);cursor:pointer;transition:background .12s}
.sgrow:first-child{border-top:0}
.sgrow:hover{background:var(--neutral-soft,#0000000a)}
.sgrow.on{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.sgrow.off .sgtext{opacity:.55}
.sgpick{display:flex;align-items:center;gap:10px;flex:1;min-width:0;border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}
.sgtext{display:flex;flex-direction:column;min-width:0}
.sgname{font-weight:600;font-size:14px;line-height:1.3}
.sgsum{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sgchev{color:var(--muted);font-size:18px;line-height:1}
.sgrow .sw.sm{transform:scale(.85);transform-origin:right center}
.sgpanel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
.sgpanel .sigform{border:1px solid var(--line);box-shadow:none}
@media(max-width:1100px){.sgmaster{grid-template-columns:minmax(0,1fr)}.sgcats{display:flex;flex-wrap:wrap;gap:6px}.sgpanel{position:static;max-height:none}}
.sgpanel{top:84px;max-height:calc(100vh - 100px)}

.sgmaster{grid-template-columns:200px minmax(0,760px)}
.sgmaster.has-panel{grid-template-columns:200px minmax(280px,1fr) minmax(340px,1.15fr)}
.sgpanel{position:sticky}
.sgclose{position:absolute;top:12px;right:12px;z-index:2;border:0;background:var(--neutral-soft,#0000000d);color:var(--muted);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:13px}
.sgclose:hover{color:var(--text)}
.sgpanel .sigform{padding-right:48px}
@media(max-width:1100px){.sgmaster,.sgmaster.has-panel{grid-template-columns:minmax(0,1fr)}}
/* Список сигналов одной ширины всегда; панель добавляется справа, не сжимая его. */
.sgmaster,.sgmaster.has-panel{grid-template-columns:200px minmax(420px,760px) minmax(340px,520px);justify-content:start}
@media(max-width:1100px){.sgmaster,.sgmaster.has-panel{grid-template-columns:minmax(0,1fr)}}

.tgweb{width:100%;height:calc(100vh - 190px);min-height:520px;border:1px solid var(--line);border-radius:14px;background:#fff}
.tg-toolbar{justify-content:space-between;align-items:center}
.tg-picker{position:relative;max-width:100%}
.tg-picker>summary{list-style:none;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;max-width:100%}
.tg-picker>summary::-webkit-details-marker{display:none}
.tg-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13px}
.tg-identity{display:flex;flex-direction:column;align-items:flex-start;min-width:0;overflow-wrap:anywhere}
.tg-identity>b,.tg-identity>.small{max-width:100%;white-space:normal}
.tg-account-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:420px;max-width:calc(100vw - 48px);padding:8px;box-shadow:0 12px 40px #0003}
.tg-account-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.tg-account-option .tg-identity{flex:1}
.tg-account-option:hover,.tg-account-option[aria-pressed="true"]{background:var(--accent-soft)}
.tg-account-option .badge{flex-shrink:0}
.tg-menu-footer{display:flex;flex-direction:column;align-items:stretch;gap:4px;border-top:1px solid var(--line);padding-top:8px}
.tg-account-card{gap:12px;box-shadow:none}
.tg-qr,.tg-note{margin:0}
.tg-note{white-space:pre-wrap;overflow-wrap:anywhere}
.tg-demo[open]{display:flex;gap:20px}
.tg-demo>summary{cursor:pointer}
.seg button:disabled{opacity:.5;cursor:default}
@media(max-width:600px){.tg-toolbar{align-items:stretch}.tg-toolbar>#live-tg-picker{width:100%}.tg-picker>summary{width:100%}.tg-account-menu{width:100%;max-width:100%}.tg-account-card>.row{align-items:flex-start;gap:12px}.tgweb{min-height:480px;height:70vh}}

/* Статус сигнала: зелёная мерцающая — работает, красная — не работает */
.sdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;position:relative;top:-1px;flex:0 0 8px}
.sdot.on{background:#22B573;box-shadow:0 0 0 0 rgba(34,181,115,.6);animation:sdot-pulse 1.6s ease-out infinite}
.sdot.off{background:#D93636}
@keyframes sdot-pulse{0%{box-shadow:0 0 0 0 rgba(34,181,115,.55);opacity:1}70%{box-shadow:0 0 0 6px rgba(34,181,115,0);opacity:.75}100%{box-shadow:0 0 0 0 rgba(34,181,115,0);opacity:1}}
@media (prefers-reduced-motion: reduce){.sdot.on{animation:none}}

/* «Сегодня»: два графика в ряд и компактные карточки */
.tdcharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
.tdchart{gap:8px;padding:14px 16px}.tdchart h3{font-size:15px;margin:0}
.tdbar{grid-template-columns:minmax(0,1fr) minmax(60px,40%) 24px;font-size:13px;gap:8px}.tdbar .t,.tdbar .t>div{height:6px}
.tdbar .num{text-align:right}
.tdlist{display:flex;flex-direction:column;gap:10px}
.tdcard{gap:8px;padding:14px 16px}
.tdhead{display:flex;gap:12px;align-items:center}
.tdtitle{display:flex;flex-direction:column;min-width:0}.tdtitle a{color:var(--text);text-decoration:none}.tdtitle a:hover{color:var(--accent)}
.tdprio{flex:0 0 36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.tdprio.p1{background:var(--hot);color:#fff}.tdprio.p2{background:var(--hot-soft);color:var(--hot)}.tdprio.p3{background:var(--neutral-soft);color:var(--text-2)}
.tdcard>.tdwhy{margin:0;font-size:14px;color:var(--text-2);border-top:1px solid var(--line-soft);padding-top:8px}
.tdtags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tdtag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--neutral-soft);color:var(--text-2)}.tdtag.hot{background:var(--hot-soft);color:var(--hot)}
.tdmore{align-self:flex-start;background:none;border:0;padding:4px 0;color:var(--accent);font-weight:700;font-size:13px;cursor:pointer;min-height:32px}
.tddetail{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line-soft);padding-top:10px}
.tdsig{display:flex;flex-direction:column;gap:2px;font-size:14px}

.sgpick .sdot{margin-right:2px;top:0}
