/* ============================================================
   Frond — админка. Боковое меню, карточки, тихий белый.
   ============================================================ */

html { height: auto; overflow: visible; overscroll-behavior: auto; }
.adminbody { height: auto; min-height: 100%; overflow: visible; background: #fafafb; }
.adm { min-height: 100dvh; display: grid; grid-template-columns: 236px minmax(0, 1fr); }

/* ---------------------------------------------- боковое меню */
.adm__side {
  position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; gap: 6px;
  padding: calc(18px + var(--sat)) 12px 16px; border-right: 1px solid var(--line); background: var(--bg);
}
.adm__brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 16px; text-decoration: none; }
.adm__brand span { font-weight: 600; font-size: 17px; letter-spacing: -.01em; }
.adm__brand small { font-size: 11px; color: var(--fg-3); padding: 2px 7px; border-radius: 999px; background: var(--bg-soft); margin-left: auto; }
.adm__nav { display: grid; gap: 2px; }
.adm__navbtn {
  display: flex; align-items: center; gap: 11px; height: 40px; padding: 0 12px; border-radius: 11px;
  font-size: 14px; font-weight: 500; color: var(--fg-2); transition: background .15s, color .15s;
}
.adm__navbtn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .8; }
.adm__navbtn:hover { background: var(--bg-soft); color: var(--fg); }
.adm__navbtn:active { transform: scale(.97); }
.adm__navbtn.is-on { background: var(--fg); color: #fff; }
.adm__navbtn.is-on svg { opacity: 1; }
.adm__navbtn em { margin-left: auto; font-style: normal; font-size: 11.5px; font-variant-numeric: tabular-nums; color: var(--fg-3); padding: 1px 7px; border-radius: 999px; background: var(--bg-soft); }
.adm__navbtn.is-on em { background: rgba(255,255,255,.18); color: #fff; }
.adm__navbtn em:empty { display: none; }
.adm__sidefoot { margin-top: auto; display: grid; gap: 4px; }
.adm__now { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); text-align: left; transition: background .15s; }
.adm__now:hover { background: var(--bg-soft); }
.adm__now-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(47,143,91,.15); flex: none; }
.adm__now-text { display: grid; min-width: 0; }
.adm__now-text b { font-size: 12.5px; font-weight: 600; font-family: var(--mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm__now-text small { font-size: 11.5px; color: var(--fg-3); }
.adm__logout { display: flex; align-items: center; gap: 10px; height: 38px; padding: 0 12px; border-radius: 11px; font-size: 13.5px; font-weight: 500; color: var(--red); transition: background .15s, color .15s; }
.adm__logout svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.adm__logout:hover { background: rgba(217,75,75,.09); color: #b93a3a; }

/* ---------------------------------------------- основная область */
.adm__main { min-width: 0; padding: 0 32px 40px; }
.adm__head { display: flex; align-items: center; gap: 12px; padding: calc(26px + var(--sat)) 0 22px; }
.adm__headtext { min-width: 0; flex: 1; }
.adm__head h1 { margin: 0; font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
.adm__head p { margin: 3px 0 0; font-size: 13.5px; color: var(--fg-3); }
.adm__head p:empty { display: none; }
.adm__back { flex: none; margin-left: -8px; }
.adm__back svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.adm__refresh {
  display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 11px;
  border: 1px solid var(--line-2); background: var(--bg); font-size: 13.5px; font-weight: 500; color: var(--fg-2);
  transition: background .15s, color .15s;
}
.adm__refresh:hover { color: var(--fg); background: var(--bg-soft); }
.adm__refresh svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.adm__refresh.is-loading svg { animation: spin .8s linear infinite; }
.adm__panel { animation: fadein .25s var(--ease) both; }

/* ---------------------------------------------- общие детали */
.card { padding: 18px 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg); }
.card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.card__head h3 { margin: 0; font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.card__head > span { font-size: 12.5px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.card__head--bare { margin: 22px 0 10px 4px; }
.card__head--bare h3 { font-size: 16px; }
.card--danger { border-color: #f3dede; }
.link { font-size: 13px; font-weight: 500; color: var(--fg-2); padding: 4px 8px; border-radius: 8px; white-space: nowrap; }
.link:hover { background: var(--bg-soft); color: var(--fg); }
.hint { margin: 0 0 12px; font-size: 13px; color: var(--fg-3); line-height: 1.5; }
.hint code { font-family: var(--mono); font-size: 12px; background: var(--bg-soft); padding: 1px 5px; border-radius: 5px; }
.tag { font-size: 11.5px; padding: 3px 8px; border-radius: 999px; background: var(--bg-soft); color: var(--fg-2); white-space: nowrap; }
.tag--own { background: rgba(43,108,217,.1); color: #2b6cd9; }
.tag--warn { background: #fff3e0; color: #b25e00; }
.tag--bad { background: #fff1f1; color: var(--red); }
.tag--ok { background: rgba(47,143,91,.12); color: var(--green); }
.key { font-family: var(--mono); font-size: 12px; padding: 2px 7px; border-radius: 6px; background: var(--bg-soft); color: var(--fg-2); }
.nothing { color: var(--fg-3); padding: 28px 12px; text-align: center; font-size: 14px; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 16px; }
.kpi { padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); display: grid; gap: 2px; min-width: 0; animation: fadein .3s var(--ease) both; }
.kpi b { font-size: 24px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi span { font-size: 12.5px; color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi i { font-style: normal; font-size: 12px; font-weight: 500; margin-top: 2px; }
.kpi i.up { color: var(--green); }
.kpi i.down { color: var(--red); }
.kpi i.flat { color: var(--fg-3); }
.kpi--bad b { color: var(--red); }
.hint--center { text-align: center; margin: 10px 0 0; }
.adm__headactions { display: flex; gap: 8px; }
.adm__headactions:empty { display: none; }

.toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.search { flex: 1; min-width: 200px; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--line-2); background: var(--bg); transition: border-color .2s, box-shadow .2s; }
.search:focus-within { border-color: var(--fg); box-shadow: 0 0 0 4px rgba(11,11,12,.05); }
.search svg { width: 16px; height: 16px; fill: none; stroke: var(--fg-3); stroke-width: 2; stroke-linecap: round; flex: none; }
.search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font-size: 14.5px; }
.search input::-webkit-search-cancel-button { -webkit-appearance: none; }

.seg { display: inline-flex; gap: 3px; padding: 3px; border-radius: 12px; background: var(--bg-soft); }
.seg button { padding: 8px 14px; border-radius: 9px; font-size: 13.5px; font-weight: 500; color: var(--fg-2); transition: background .15s, color .15s, box-shadow .15s; white-space: nowrap; }
.seg button:hover { color: var(--fg); }
.seg button.is-on { background: var(--bg); color: var(--fg); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.seg--sm { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.seg--sm::-webkit-scrollbar { display: none; }
.seg--sm button { padding: 6px 11px; font-size: 13px; flex: none; }
.model-list, .user-main, .prompt-card, .adm__panel { min-width: 0; }
.seg--wrap { display: flex; flex-wrap: wrap; }
.seg--wrap button { flex: 1 1 auto; }

.field { display: grid; gap: 7px; margin-bottom: 14px; }
.field > span { font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); }
.field input:not([type="radio"]):not([type="checkbox"]), .field textarea, .model-custom__row input {
  width: 100%; padding: 11px 14px; border-radius: 12px; border: 1.5px solid var(--line-2); background: var(--bg); outline: none;
  font-size: 15px; line-height: 1.5; transition: border-color .2s, box-shadow .2s; resize: vertical; font-family: var(--font);
}
.field input:not([type="radio"]):focus, .field textarea:focus, .model-custom__row input:focus { border-color: var(--fg); box-shadow: 0 0 0 4px rgba(11,11,12,.05); }
.field textarea { min-height: 120px; }
.field .hint { margin: 0; }

.radio { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.radio:hover { background: var(--bg-soft); }
.radio:has(input:checked) { border-color: var(--fg); }
.radio input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--fg); flex: none; }
.radio span { min-width: 0; }
.radio span { display: grid; gap: 2px; font-size: 13.5px; }
.radio b { font-weight: 600; }
.radio small { font-size: 12px; color: var(--fg-3); }

.btn--ghost-danger { border: 1.5px solid #f3dede; color: var(--red); background: var(--bg); height: 42px; padding: 0 16px; border-radius: 12px; width: 100%; }
.btn--ghost-danger:hover { background: #fff1f1; }

.bar { display: inline-flex; align-items: center; gap: 10px; }
.bar__track { width: 96px; height: 6px; border-radius: 3px; background: #e3e3e8; overflow: hidden; }
.bar__fill { height: 100%; background: var(--fg); border-radius: 3px; transition: width .8s var(--ease); }
.bar__fill.is-low { background: #e08a1e; }
.bar__fill.is-out { background: var(--red); }
.bar__num { font-variant-numeric: tabular-nums; font-size: 13px; }
.bar__num small { color: var(--fg-3); }
.err { color: var(--red); font-size: 13px; }
.del { padding: 6px 10px; border-radius: 8px; font-size: 12.5px; color: var(--fg-3); }
.del:hover { background: #fff1f1; color: var(--red); }

/* ---------------------------------------------- обзор */
.ov-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.ov-chart { grid-column: 1 / -1; }
.hours { display: grid; grid-template-columns: repeat(24, 1fr); gap: 3px; align-items: end; height: 110px; padding-top: 8px; }
.hours i { display: block; min-height: 3px; border-radius: 4px 4px 2px 2px; background: var(--fg); opacity: .85; transition: height .6s var(--ease); position: relative; }
.hours i.is-zero { background: var(--bg-soft-2); opacity: 1; }
.hours i.is-now { background: var(--green); }
.hours i:hover::after { content: attr(data-t); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); font-size: 11px; white-space: nowrap; background: var(--fg); color: #fff; padding: 3px 7px; border-radius: 6px; font-style: normal; z-index: 2; }
.hours-axis { display: flex; justify-content: space-between; font-size: 11px; color: var(--fg-3); margin-top: 6px; font-variant-numeric: tabular-nums; }

/* компактные строки-списки: последние вопросы, у кого мало токенов, кто со своей моделью */
.qlist { display: grid; }
.qrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); font-size: 13.5px; cursor: pointer; text-align: left; width: 100%; }
.qrow:first-child { border-top: 0; }
.qrow:hover .qrow__text { color: var(--fg); }
.qrow__text { min-width: 0; display: grid; gap: 1px; color: var(--fg-2); }
.qrow__text > * { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qrow__text small { font-size: 12px; color: var(--fg-3); }
.qrow__meta { font-size: 12px; color: var(--fg-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.qrow .bar { flex: none; }
.qrow .bar__track { display: block; width: 72px; height: 7px; }

/* ---------------------------------------------- лента */
.feed-summary { font-size: 13px; color: var(--fg-3); margin: -4px 0 12px 4px; }
.feed { display: grid; gap: 6px; }
.feed__day { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); padding: 14px 4px 6px; }
.feed__day:first-child { padding-top: 0; }
.fi { border: 1px solid var(--line); border-radius: 14px; background: var(--bg); animation: fadein .25s var(--ease) both; transition: box-shadow .2s; }
.fi:hover { box-shadow: 0 6px 20px -14px rgba(0,0,0,.35); }
.fi__row { transition: background .15s; }
.fi__row:active { background: var(--bg-soft); }
.fi__row { display: grid; grid-template-columns: 44px auto minmax(0, 1fr) auto 24px; align-items: center; gap: 12px; width: 100%; padding: 11px 14px; text-align: left; }
.fi__time { font-size: 12.5px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.fi__key { white-space: nowrap; min-width: 58px; text-align: center; }
.fi__main { min-width: 0; display: grid; gap: 2px; }
.fi__q { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fi__a { font-size: 13px; color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fi__a.is-err { color: var(--red); }
.fi__tags { display: flex; gap: 5px; align-items: center; }
.fi__tags .tag { font-size: 11px; padding: 2px 7px; }
.fi__chev { width: 24px; height: 24px; display: grid; place-items: center; color: var(--fg-3); transition: transform .2s var(--ease); }
.fi__chev svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.fi.is-open .fi__chev { transform: rotate(180deg); }
.fi.is-open .fi__q { white-space: normal; }
.fi__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .32s var(--ease); }
.fi__inner { min-height: 0; overflow: hidden; padding: 0 14px 0 78px; opacity: 0; transition: opacity .25s, padding .32s var(--ease); }
.fi.is-open .fi__body { grid-template-rows: 1fr; }
.fi.is-open .fi__inner { opacity: 1; padding-bottom: 14px; }
.fi__images { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.fi__images img { width: auto; height: 90px; max-width: 140px; object-fit: contain; background: var(--bg-soft); border-radius: 10px; border: 1px solid var(--line); }
.fi__question { font-size: 14.5px; line-height: 1.5; padding: 10px 14px; border-radius: 12px; background: var(--bg-soft-2); white-space: pre-wrap; overflow-wrap: anywhere; margin-bottom: 12px; }
.fi__question.is-cut::after { content: ' …'; color: var(--fg-3); }
.fi__answer { font-size: 15px; line-height: 1.65; max-height: 520px; overflow: auto; padding-right: 4px; }
.fi__answer::-webkit-scrollbar { width: 6px; }
.fi__answer::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 3px; }
.fi__pending { color: var(--fg-3); font-style: italic; }
.fi__err { color: var(--red); }
.fi__foot { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--fg-3); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fi__foot .link { margin-left: auto; }

/* ---------------------------------------------- люди */
.people { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.person { display: grid; min-width: 0; width: 100%; overflow: hidden; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); text-align: left; transition: box-shadow .2s, transform .15s var(--ease); animation: fadein .25s var(--ease) both; }
.person:hover { box-shadow: 0 10px 28px -16px rgba(0,0,0,.35); transform: translateY(-1px); }
.person__head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.person__name { min-width: 0; flex: 1; display: grid; }
.person__name code { font-family: var(--mono); font-size: 14px; font-weight: 600; }
.person__name small { font-size: 12px; color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.person__seen { flex: none; font-size: 12px; color: var(--fg-3); white-space: nowrap; }
.person__seen.is-now { color: var(--green); font-weight: 500; }
.person__bal { display: grid; gap: 5px; }
.person__bal .bar__track { display: block; width: 100%; height: 7px; }
.person__balrow { display: flex; justify-content: space-between; gap: 8px; min-width: 0; font-size: 12.5px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.person__balrow b { flex: none; color: var(--fg); font-weight: 600; white-space: nowrap; }
.person__balrow span { flex: 1 1 auto; min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.person__balrow b.is-low { color: #b25e00; }
.person__balrow b.is-out { color: var(--red); }
.person__foot { display: flex; align-items: center; gap: 12px; min-width: 0; font-size: 12.5px; color: var(--fg-3); }
.person__foot span { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.person__foot .tag { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.person__foot svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.person__foot .tag { margin-left: auto; }
.ava { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; font-family: var(--mono); font-size: 12px; font-weight: 600; color: #fff; flex: none; letter-spacing: .02em; }

/* ---------------------------------------------- один человек */
.user-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.user-side { display: grid; gap: 14px; position: sticky; top: 20px; }
.user-side__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.user-side__foot .hint { margin: 0; }
.chatlist { display: grid; gap: 8px; }
.chatrow { text-align: left; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg); display: grid; gap: 3px; transition: box-shadow .2s, transform .15s var(--ease); }
.chatrow:hover { box-shadow: 0 8px 24px -14px rgba(0,0,0,.3); transform: translateY(-1px); }
.chatrow b { font-weight: 600; }
.chatrow span { font-size: 13px; color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thread__inner { padding: 0; }

/* выпадающий выбор модели (общий для человека и для всех) */
.pick { position: relative; }
.pick__btn { display: flex; align-items: center; gap: 10px; width: 100%; height: 44px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--line-2); background: var(--bg); text-align: left; transition: border-color .2s; }
.pick__btn:hover { border-color: var(--fg-3); }
.pick__btn b { flex: 1; min-width: 0; font-family: var(--mono); font-size: 13.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pick__btn b.is-muted { font-family: var(--font); color: var(--fg-3); font-weight: 400; }
.pick__btn svg { width: 14px; height: 14px; fill: none; stroke: var(--fg-3); stroke-width: 2; stroke-linecap: round; flex: none; }
.pick__menu.is-closing { animation: popout .16s var(--ease) forwards; pointer-events: none; }
.pick__menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; background: var(--bg); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.35); padding: 6px; max-height: 320px; overflow: auto; animation: pop .18s var(--spring) both; }
.pick__search { width: 100%; height: 36px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--line-2); font-size: 13.5px; outline: 0; margin-bottom: 6px; }
.pick__group { font-size: 10.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3); padding: 8px 10px 4px; }
.pick__opt { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border-radius: 9px; text-align: left; font-size: 13.5px; }
.pick__opt:hover { background: var(--bg-soft); }
.pick__opt.is-on { background: var(--bg-soft-2); }
.pick__opt b { flex: 1; min-width: 0; font-family: var(--mono); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pick__opt small { color: var(--fg-3); font-size: 11.5px; white-space: nowrap; }

/* ---------------------------------------------- модель */
.model-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.model-side { display: grid; gap: 14px; position: sticky; top: 20px; }
.models { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.mcard { text-align: left; min-width: 0; width: 100%; padding: 13px 14px; border: 1.5px solid var(--line); border-radius: 15px; background: var(--bg); display: grid; gap: 8px; transition: border-color .15s, box-shadow .15s, transform .15s var(--ease); position: relative; }
.mcard:hover { border-color: var(--fg-3); transform: translateY(-1px); }
.mcard:active, .person:active, .chatrow:active { transform: scale(.985); }
.mcard.is-on { border-color: var(--fg); box-shadow: 0 0 0 3px rgba(11,11,12,.06); }
.mcard.is-live::after { content: 'сейчас'; position: absolute; top: 10px; right: 10px; font-size: 10.5px; font-weight: 600; color: var(--green); background: rgba(47,143,91,.12); padding: 2px 7px; border-radius: 999px; }
.mcard__id { font-family: var(--mono); font-size: 13.5px; font-weight: 600; word-break: break-all; padding-right: 54px; }
.mcard__vendor { font-size: 12px; color: var(--fg-3); display: flex; align-items: center; gap: 6px; }
.mcard__vendor i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.mcard__meta { display: flex; flex-wrap: wrap; gap: 5px; }
.mcard__meta span { font-size: 11px; padding: 2px 7px; border-radius: 6px; background: var(--bg-soft); color: var(--fg-2); }
.mcard__meta span.is-off { opacity: .45; text-decoration: line-through; }
.model-custom { margin-top: 14px; font-size: 13.5px; color: var(--fg-2); }
.model-custom summary { cursor: pointer; padding: 6px 4px; }
.model-custom__row { display: flex; gap: 8px; margin-top: 8px; }
.model-custom__row input { font-family: var(--mono); font-size: 14px; }
.model-custom__row .btn { height: 46px; padding: 0 16px; flex: none; border: 1.5px solid var(--line-2); }
.picked { padding: 14px 16px; border-radius: 14px; background: var(--bg-soft); margin-bottom: 16px; display: grid; gap: 8px; }
.picked__label { font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); display: flex; justify-content: space-between; align-items: center; }
.picked__label .tag { text-transform: none; letter-spacing: 0; font-weight: 500; }
.picked b { font-family: var(--mono); font-size: 16px; word-break: break-all; }
.picked__vendor { font-size: 13px; color: var(--fg-2); display: flex; align-items: center; gap: 6px; }
.picked__vendor i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.specs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin-top: 4px; }
.spec { display: grid; gap: 1px; }
.spec small { font-size: 11px; color: var(--fg-3); }
.spec b { font-family: var(--font); font-size: 13.5px; font-weight: 600; word-break: normal; }
.caps { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 2px; }
.cap { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--fg-2); }
.cap::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.cap.is-off { color: var(--fg-3); text-decoration: line-through; }
.cap.is-off::before { background: var(--line-2); }
.picked__note { font-size: 12.5px; color: #b25e00; }
.diff { display: grid; gap: 4px; padding: 10px 12px; border-radius: 12px; border: 1px dashed var(--line-2); font-size: 13px; margin-bottom: 12px; font-variant-numeric: tabular-nums; }
.diff div { display: flex; justify-content: space-between; gap: 10px; }
.diff span { color: var(--fg-3); }
.diff b { font-weight: 500; font-family: var(--mono); font-size: 12.5px; text-align: right; word-break: break-all; }
.diff .is-new { color: var(--green); font-weight: 600; }
.model-side .btn--block { height: 46px; border-radius: 13px; }
.model-side .btn--block:disabled { opacity: .45; cursor: default; transform: none; }

/* ---------------------------------------------- промт */
.prompt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.prompt-card textarea { width: 100%; min-height: 60vh; padding: 14px 16px; border-radius: 14px; border: 1.5px solid var(--line-2); outline: 0; font-family: var(--font); font-size: 14.5px; line-height: 1.6; resize: vertical; transition: border-color .2s, box-shadow .2s; }
.prompt-card textarea:focus { border-color: var(--fg); box-shadow: 0 0 0 4px rgba(11,11,12,.05); }
.prompt-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.prompt-foot .hint { margin: 0; }
.prompt-actions { display: flex; gap: 8px; }
.prompt-actions .btn { height: 42px; padding: 0 16px; border-radius: 12px; }
.prompt-actions .btn:not(.btn--primary) { border: 1.5px solid var(--line-2); }

/* ---------------------------------------------- обновления: список + редактор в шторке */
.ann-top { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); margin-bottom: 14px; }
.ann-top__text { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ann-top__text b { font-size: 15px; font-weight: 600; }
.ann-top__text span { font-size: 13px; color: var(--fg-3); }
.ann-top__new { height: 42px; padding: 0 16px 0 12px; border-radius: 12px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.ann-top__new svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.ann-list { display: grid; gap: 10px; }
.ann-item { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg); animation: fadein .3s var(--ease) both; transition: opacity .2s; }
.ann-item.is-off { opacity: .6; }
.ann-item__thumb { width: 120px; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; background: linear-gradient(160deg, #eef2ee, #e7e9f0); display: grid; place-items: center; }
.ann-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ann-item__thumb .ann-item__logo { width: 34px; height: 34px; border-radius: 10px; }
.ann-item__main { min-width: 0; display: grid; gap: 4px; }
.ann-item__meta { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--fg-3); }
.ann-item__meta .ann__badge { font-size: 10.5px; padding: 4px 9px 4px 7px; }
.ann-item[data-kind="soon"] .ann__badge { background: rgba(107,79,217,.1); color: var(--violet); }
.ann-item[data-kind="news"] .ann__badge { background: rgba(43,108,217,.1); color: var(--blue); }
.ann-item__title { font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ann-item__text { margin: 0; font-size: 13.5px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ann-item__side { display: grid; gap: 8px; justify-items: end; }
.switch { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--fg-3); cursor: pointer; user-select: none; }
.switch i { width: 36px; height: 21px; border-radius: 999px; background: var(--line-2); position: relative; transition: background .2s; }
.switch i::after { content: ''; position: absolute; top: 2.5px; left: 2.5px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s var(--ease); }
.switch.is-on i { background: var(--green); }
.switch.is-on i::after { transform: translateX(15px); }
.switch.is-on { color: var(--green); }
.ann-item__actions { display: flex; gap: 2px; }
.ann-item__actions button { padding: 6px 10px; border-radius: 9px; font-size: 13px; color: var(--fg-2); white-space: nowrap; }
.ann-item__actions button:hover { background: var(--bg-soft); color: var(--fg); }
.ann-item__actions button.is-danger:hover { background: #fff1f1; color: var(--red); }
.ann-empty { display: grid; justify-items: center; gap: 8px; padding: 50px 20px; border: 1.5px dashed var(--line-2); border-radius: 18px; color: var(--fg-3); text-align: center; }
.ann-empty b { color: var(--fg); font-size: 15px; }

.drawer { position: fixed; inset: 0; z-index: 55; background: rgba(11,11,12,.32); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: fadein .2s; display: flex; justify-content: flex-end; }
.drawer__box { width: min(980px, 100%); height: 100%; background: var(--bg); display: flex; flex-direction: column; box-shadow: -30px 0 80px -30px rgba(0,0,0,.4); animation: slidein .3s var(--ease) both; }
@keyframes slidein { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes slideout { to { transform: translateX(40px); opacity: 0; } }
@keyframes fadeout { to { opacity: 0; } }
@keyframes popout { to { opacity: 0; transform: scale(.96); } }
.drawer.is-closing { animation: fadeout .24s var(--ease) forwards; pointer-events: none; }
.drawer.is-closing .drawer__box { animation: slideout .24s var(--ease) forwards; }
.modal.is-closing { animation: fadeout .18s var(--ease) forwards; pointer-events: none; }
.modal.is-closing .modal__box { animation: popout .18s var(--ease) forwards; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 24px; border-bottom: 1px solid var(--line); }
.drawer__head h2 { margin: 0; font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.drawer__head .icon-btn svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.drawer__body { flex: 1; overflow: auto; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; padding: 22px 24px; align-items: start; }
.drawer__foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px calc(14px + var(--sab)); border-top: 1px solid var(--line); }
.drawer__foot .btn { height: 44px; padding: 0 20px; border-radius: 13px; }
.drawer__foot .btn:not(.btn--primary) { border: 1.5px solid var(--line-2); }
.ann-form { display: grid; gap: 4px; }
.ann-form .field > span em { font-style: normal; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--fg-3); margin-left: 4px; }
.kinds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.kinds button { display: grid; justify-items: start; gap: 2px; padding: 11px 12px; border: 1.5px solid var(--line); border-radius: 13px; text-align: left; transition: border-color .15s, background .15s; }
.kinds button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 4px; color: var(--fg-3); }
.kinds button b { font-size: 13.5px; font-weight: 600; }
.kinds button small { font-size: 11.5px; color: var(--fg-3); line-height: 1.3; }
.kinds button:hover { background: var(--bg-soft); }
.kinds button.is-on { border-color: var(--fg); }
.kinds button.is-on svg { color: var(--fg); }
.ann-drop { position: relative; border: 1.5px dashed var(--line-2); border-radius: 14px; background: var(--bg-soft); cursor: pointer; transition: border-color .2s, background .2s; outline: none; overflow: hidden; }
.ann-drop:hover, .ann-drop:focus-visible { border-color: var(--fg-3); background: var(--bg-soft-2); }
.ann-drop.is-over { border-color: var(--fg); background: #eef4ef; }
.ann-drop.is-busy { pointer-events: none; opacity: .6; }
.ann-drop__empty { display: grid; justify-items: center; gap: 3px; padding: 20px 16px; color: var(--fg-3); text-align: center; }
.ann-drop__empty svg { margin-bottom: 4px; fill: none; stroke: var(--fg-2); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ann-drop__empty b { font-size: 14px; font-weight: 600; color: var(--fg); }
.ann-drop__empty span { font-size: 12.5px; }
.ann-drop__preview { position: relative; aspect-ratio: 16 / 10; }
.ann-drop__preview img { width: 100%; height: 100%; object-fit: cover; }
.ann-drop__preview button { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; background: rgba(11,11,12,.55); color: #fff; display: grid; place-items: center; font-size: 13px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ann-drop__preview button:hover { background: var(--red); }
.ann-preview { position: sticky; top: 0; }
.ann-preview__label { font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); margin: 0 0 10px 4px; }
.ann-preview__frame { border-radius: 28px; background: var(--bg); overflow: hidden; box-shadow: 0 40px 90px -30px rgba(0,0,0,.4), 0 0 0 1px rgba(11,11,12,.06); }
.ann-preview__foot { padding: 0 24px 24px; }
.ann-preview__foot .annwrap__ok { width: 100%; pointer-events: none; }
.ann-preview .ann__photo { transition: opacity .3s; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .adm *, .drawer *, .modal * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------------------------------------------- нижнее меню (телефон) */
.adm__bottom { display: none; }

@media (max-width: 1100px) {
  .ov-grid { grid-template-columns: 1fr; }
  .model-grid, .prompt-grid, .user-grid { grid-template-columns: minmax(0, 1fr); }
  .model-side, .user-side { position: static; }
  .drawer__body { grid-template-columns: 1fr; }
  .ann-preview { position: static; max-width: 420px; }
}
@media (max-width: 860px) {
  .adm { grid-template-columns: 1fr; }
  .adm__side { display: none; }
  .adm__main { padding: 0 16px calc(84px + var(--sab)); }
  .adm__head { padding-top: calc(18px + var(--sat)); padding-bottom: 16px; }
  .adm__head h1 { font-size: 22px; }
  .adm__refresh span { display: none; }
  .adm__refresh { width: 38px; padding: 0; justify-content: center; }
  .adm__bottom {
    display: grid; grid-template-columns: repeat(6, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; transform: translateZ(0);
    padding: 6px 6px calc(6px + var(--sab)); background: rgba(255,255,255,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--line);
  }
  .adm__bottom button { display: grid; justify-items: center; gap: 3px; padding: 6px 2px; border-radius: 10px; font-size: 10.5px; font-weight: 500; color: var(--fg-3); transition: color .15s, transform .15s; }
  .adm__bottom button:active { transform: scale(.92); }
  .adm__bottom button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .adm__bottom button.is-on { color: var(--fg); }
  .hours { height: 90px; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fi__row { grid-template-columns: 44px minmax(0, 1fr) 20px; gap: 10px; padding: 10px 12px; }
  .fi__key, .fi__tags { display: none; }
  .fi__inner { padding: 0 12px 0; }
  .fi.is-open .fi__inner { padding-bottom: 12px; }
  .fi__answer { max-height: 380px; }
  .people { grid-template-columns: 1fr; }
  .ann-top { flex-direction: column; align-items: stretch; }
  .ann-item { grid-template-columns: 84px minmax(0, 1fr); }
  .ann-item__thumb { width: 84px; }
  .ann-item__side { grid-column: 1 / -1; grid-auto-flow: column; justify-content: space-between; align-items: center; }
  .kinds { grid-template-columns: 1fr; }
  .kinds button { grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; }
  .kinds button svg { grid-row: 1 / 3; margin: 0; }
  .drawer__box { width: 100%; }
  .drawer__head { padding: 14px 16px; }
  .drawer__body { padding: 16px; gap: 18px; }
  .drawer__foot { padding-left: 16px; padding-right: 16px; }
  .seg:not(.seg--sm) { display: flex; }
  .seg:not(.seg--sm) button { flex: 1; padding: 8px 6px; }
  .prompt-card textarea { min-height: 50vh; }
  .card { padding: 16px; border-radius: 16px; }
}

/* ============================================================
   v3.0 — аккаунты и почта: карточка аккаунта у человека,
   вкладка «Почта» (ящик, пробное письмо, коды, журнал).
   ============================================================ */
.key--who { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person__name code.is-mail { font-family: var(--font); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ava--mail { font-family: var(--serif); font-size: 18px; }
.adm__navbtn em.is-bad { background: #fff1f1; color: var(--red); font-weight: 700; }
.adm__navbtn.is-on em.is-bad { background: rgba(255,255,255,.18); color: #fff; }
.nothing--sm { padding: 14px 6px; font-size: 13px; }

/* Плашка над карточками моделей: список старый или не пришёл вовсе */
.models__note { grid-column: 1 / -1; padding: 10px 14px; border-radius: 12px; font-size: 13px; line-height: 1.4; border: 1px solid var(--line); background: var(--bg-soft); color: var(--fg-2); }
.models__note--stale { border-color: #f0c98a; background: #fff6e6; color: #8a4b00; }
.models__note--error { border-color: #f0b8b8; background: #fff1f1; color: #9b2c2c; }

/* --- аккаунт: почта / пароль / ключ / входы --- */
.acc { display: grid; }
.acc__row { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 0; border-top: 1px solid var(--line); min-width: 0; }
.acc__row:first-child { border-top: 0; }
.acc__row--last { margin-top: 6px; }
.acc__row > span:first-child { flex: none; width: 74px; display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--fg-3); }
.acc__row > span:first-child svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.acc__val { flex: 1 1 auto; min-width: 0; font-weight: 500; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc__val.is-muted { color: var(--fg-3); font-weight: 400; }
.acc__secret { font-family: var(--mono); font-size: 12.5px; letter-spacing: .06em; }
.acc__secret.is-shown { letter-spacing: 0; user-select: all; }
.acc__btns { flex: none; display: inline-flex; align-items: center; gap: 2px; }
.acc__ic { height: 30px; min-width: 30px; padding: 0 6px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: var(--fg-3); font-size: 12px; font-weight: 500; transition: background .15s, color .15s; }
.acc__ic svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.acc__ic:hover { background: var(--bg-soft); color: var(--fg); }
.acc__ic--text { color: var(--fg-2); }
.acc__keyrow { display: flex; gap: 8px; margin-top: 10px; }
.acc__keyinput { flex: 1; min-width: 0; height: 40px; padding: 0 12px; border-radius: 11px; border: 1.5px solid var(--line-2); outline: 0; font-family: var(--mono); font-size: 13px; transition: border-color .2s, box-shadow .2s; }
.acc__keyinput:focus { border-color: var(--fg); box-shadow: 0 0 0 4px rgba(11,11,12,.05); }
.acc__keyrow .btn { height: 40px; padding: 0 14px; border-radius: 11px; flex: none; }
.acc__note { margin: 8px 0 0; }
.acc__link { margin: 4px 0 0 -8px; color: var(--red); }
.acc__link:hover { background: #fff1f1; color: var(--red); }

/* --- почта --- */
.mail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.mail-main, .mail-side { display: grid; gap: 14px; min-width: 0; }
.mail-side { position: sticky; top: 20px; }
.mail-pass { position: relative; }
.mail-pass input { width: 100%; padding-right: 44px; font-family: var(--mono); }
.mail-pass .icon-btn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; color: var(--fg-3); }
.mail-pass .icon-btn svg { fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mail-actions { display: flex; gap: 8px; align-items: center; }
.mail-actions .btn { height: 42px; padding: 0 18px; border-radius: 12px; }
.mail-test { display: flex; gap: 8px; }
.mail-test input { flex: 1; min-width: 0; height: 42px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--line-2); outline: 0; font-size: 14px; transition: border-color .2s, box-shadow .2s; }
.mail-test input:focus { border-color: var(--fg); box-shadow: 0 0 0 4px rgba(11,11,12,.05); }
.mail-test .btn { height: 42px; padding: 0 16px; border-radius: 12px; flex: none; }
.mail-test .btn__label { display: inline-flex; align-items: center; gap: 7px; }
.mail-test .btn__label svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.codes, .maillog { display: grid; }
.coderow { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); min-width: 0; }
.coderow:first-child { border-top: 0; }
.coderow__main { flex: 1; min-width: 0; display: grid; gap: 1px; }
.coderow__main b { font-size: 13.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coderow__main small { font-size: 12px; color: var(--fg-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coderow.is-fail small { color: #b25e00; }
.coderow__code { flex: none; font-family: var(--mono); font-size: 17px; font-weight: 700; letter-spacing: .14em; padding: 6px 10px 6px 12px; border-radius: 10px; background: var(--fg); color: #fff; cursor: pointer; transition: transform .15s var(--ease); }
.coderow__code:active { transform: scale(.96); }
.logrow { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; }
.logrow:first-child { border-top: 0; }
.logrow__time { font-size: 12px; color: var(--fg-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.logrow__main { min-width: 0; display: grid; gap: 1px; }
.logrow__main b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logrow__main small { font-size: 12px; color: var(--fg-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logrow.is-fail small { color: var(--red); white-space: normal; }

@media (max-width: 1100px) {
  .mail-grid { grid-template-columns: minmax(0, 1fr); }
  .mail-side { position: static; }
}
@media (max-width: 860px) {
  .adm__bottom { grid-template-columns: repeat(7, 1fr); }
  .adm__bottom button { font-size: 10px; }
  .acc__row > span:first-child { width: 64px; }
  .logrow { grid-template-columns: 70px minmax(0, 1fr) auto; }
}

/* ============================================================
   v3.1 — люди строками (почта, пароль, ключ, активность),
   «Добавить человека», вкладка «Письма» как состояние движка.
   ============================================================ */
.toolbar__add { height: 40px; padding: 0 14px 0 11px; border-radius: 12px; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; flex: none; }
.toolbar__add svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.hint--err { color: var(--red); min-height: 18px; margin: 0; }
.hint--err:empty { display: none; }
.check { display: flex; align-items: center; gap: 10px; font-size: 13.5px; cursor: pointer; user-select: none; margin: 2px 0 10px; }
.check input { width: 17px; height: 17px; accent-color: var(--fg); margin: 0; }
.drawer__box--narrow { width: min(520px, 100%); }
.drawer__body--one { grid-template-columns: minmax(0, 1fr); }
.mail-pass { position: relative; }
.mail-pass input { width: 100%; padding-right: 100px; font-family: var(--mono); }
.mail-pass__gen { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); }

/* люди: строки */
.people { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); overflow: hidden; }
.urow { display: grid; grid-template-columns: minmax(220px, 1.5fr) 190px minmax(190px, 1fr) 150px auto; align-items: center; gap: 14px; padding: 11px 16px; border-top: 1px solid var(--line); min-width: 0; cursor: pointer; transition: background .12s; animation: fadein .25s var(--ease) both; }
.urow:hover { background: var(--bg-soft); }
.urow--head { cursor: default; border-top: 0; padding: 10px 16px; background: #fafafb; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); }
.urow--head:hover { background: #fafafb; }
.urow__who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.urow__name { min-width: 0; display: grid; gap: 1px; }
.urow__name b { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.urow__name b.is-muted { color: var(--fg-2); font-family: var(--mono); font-weight: 500; }
.urow__name small { font-size: 12px; color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.urow__name small .is-own { color: #2b6cd9; }
.urow__cell { display: grid; gap: 3px; min-width: 0; }
.urow__label { display: none; }
.urow__pass { grid-template-columns: auto 1fr; align-items: center; column-gap: 4px; }
.urow__pass .secret { font-family: var(--mono); font-size: 12.5px; letter-spacing: .08em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.urow__pass .secret.is-shown { letter-spacing: 0; user-select: all; }
.urow__btns { display: inline-flex; gap: 0; }
.urow__keyline { display: flex; align-items: center; gap: 6px; min-width: 0; }
.urow__keyline code { font-family: var(--mono); font-size: 12.5px; font-weight: 600; }
.urow__key .bar__track { display: block; width: 100%; max-width: 160px; height: 5px; margin-top: 2px; }
.urow__key small { font-size: 11.5px; color: var(--fg-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.urow__key small.is-low { color: #b25e00; }
.urow__key small.is-out { color: var(--red); }
.urow__act b { font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.urow__act small { font-size: 11.5px; color: var(--fg-3); }
.urow__act small.is-now { color: var(--green); font-weight: 500; }
.urow__go { justify-self: end; }
.urow__open { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 6px 0 10px; border-radius: 9px; font-size: 12.5px; font-weight: 500; color: var(--fg-3); transition: background .15s, color .15s; }
.urow__open svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transform: rotate(180deg); }
.urow:hover .urow__open { color: var(--fg); background: var(--bg); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.is-muted { color: var(--fg-3); }

/* письма: состояние */
.mail-how__lead { margin: 0 0 14px; font-size: 14.5px; line-height: 1.55; color: var(--fg-2); }
.mail-how__lead b { color: var(--fg); font-weight: 600; }
.checks { display: grid; gap: 8px; margin-bottom: 14px; }
.check { margin: 0; cursor: default; align-items: flex-start; }
.checks .check { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--bg-soft); }
.checks .check i { flex: none; width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; background: var(--fg-3); }
.checks .check.is-ok i { background: var(--green); box-shadow: 0 0 0 3px rgba(47,143,91,.15); }
.checks .check.is-bad i { background: var(--red); box-shadow: 0 0 0 3px rgba(217,75,75,.14); }
.checks .check.is-wait i { background: #e08a1e; animation: livePulse 1.4s ease-in-out infinite; }
.checks .check div { display: grid; gap: 1px; min-width: 0; }
.checks .check b { font-size: 13.5px; font-weight: 600; }
.checks .check small { font-size: 12.5px; color: var(--fg-3); line-height: 1.45; overflow-wrap: anywhere; }
.mail-actions__hint { margin: 0; }
.dns { display: grid; gap: 10px; }
.dns__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; align-items: center; }
.dns__meta { display: grid; gap: 1px; min-width: 0; }
.dns__meta b { font-family: var(--mono); font-size: 12.5px; font-weight: 600; white-space: pre; overflow: hidden; text-overflow: ellipsis; }
.dns__meta small { font-size: 12px; color: var(--fg-3); }
.dns__val { grid-column: 1 / -1; font-family: var(--mono); font-size: 11.5px; background: var(--bg-soft); padding: 8px 10px; border-radius: 8px; overflow-wrap: anywhere; user-select: all; }
.dns__row .acc__ic { grid-row: 1; grid-column: 2; }

@media (max-width: 1100px) {
  .urow { grid-template-columns: minmax(200px, 1.5fr) 170px minmax(160px, 1fr) auto; }
  .urow__act { display: none; }
  .urow--head span:nth-child(4) { display: none; }
}
@media (max-width: 860px) {
  .people { border: 0; background: none; gap: 8px; overflow: visible; }
  .urow--head { display: none; }
  .urow { grid-template-columns: 1fr; gap: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg); }
  .urow__cell { grid-template-columns: 74px minmax(0, 1fr) auto; align-items: center; column-gap: 8px; }
  .urow__label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-3); }
  .urow__pass { grid-template-columns: 74px minmax(0, 1fr) auto; }
  .urow__key { grid-template-columns: 74px minmax(0, 1fr); }
  .urow__key .bar__track { grid-column: 2; }
  .urow__key small { grid-column: 2; }
  .urow__act { display: grid; }
  .urow__act b, .urow__act small { grid-column: 2; }
  .urow__go { justify-self: stretch; }
  .urow__open { width: 100%; justify-content: center; height: 36px; border: 1px solid var(--line-2); }
  .toolbar__add span { display: none; }
  .toolbar__add { padding: 0 11px; }
}

/* v3.2: технические правила вывода рядом с промтом */
.prompt-rules { margin: 0; max-height: 320px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.5 var(--mono); color: var(--fg-2); background: var(--bg-soft); border-radius: 8px; padding: 10px 12px; }
