/* ===========================================================================
   SaaS-кабинет: тонкий слой поверх дизайн-системы lingo (theme.css + style.css).
   Только то, чего нет в общей системе: экран входа по центру, блок пользователя
   в тёмном топбаре, строка-статус формы.
   =========================================================================== */

/* ---- экран входа: карточка по центру ---- */
.authshell{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4)}
.authcard{width:100%;max-width:420px}
.brandmark{text-align:center;margin-bottom:var(--sp-2)}
.brandmark h1{margin:0;font-size:var(--fs-2xl);font-weight:800;color:var(--ink-strong)}
.brandmark .sub{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}

/* ---- строка-статус под формой ---- */
.formstatus{margin:var(--sp-3) 0 0;min-height:1.4em;font-size:var(--fs-sm);font-weight:700}
.formstatus.ok{color:var(--ok-ink)}
.formstatus.bad{color:var(--alert-ink)}
.formstatus.muted{color:var(--muted)}
.formstatus.warn{color:var(--draft-ink)}   /* «сделано, но не то, чего ждали» */

/* ---- блок пользователя в топбаре ---- */
.userbox{display:flex;align-items:center;gap:var(--sp-3)}
.userbox .email{font-size:var(--fs-sm);opacity:.85}
/* кнопка на тёмном топбаре (у .btn роль ghost светлая, тут нужен светлый контур) */
.btn--ondark{--btn-face:rgba(255,255,255,.12);--btn-ink:var(--on-dark);--btn-line:rgba(255,255,255,.30)}
.btn--ondark:hover:not(:disabled){background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.55)}
a.btn--ondark{text-decoration:none}

/* textarea в той же системе, что и .field input/select */
.field textarea{
  border:1px solid var(--line-mid);border-radius:var(--r-sm);padding:10px 12px;
  font-size:var(--fs-md);color:var(--ink);background:var(--card);resize:vertical;
  font-family:inherit;line-height:var(--lh);
  transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}

/* ---- комбобокс: умный поиск модели по каталогу ФНС (1000+ моделей) ---- */
.combobox{position:relative}
.combomenu{list-style:none;margin:4px 0 0;padding:4px;position:absolute;z-index:20;left:0;right:0;
  top:100%;max-height:280px;overflow-y:auto;background:var(--card);border:1px solid var(--line-mid);
  border-radius:var(--r-sm);box-shadow:var(--shadow-md,0 8px 24px rgba(0,0,0,.12))}
.combomenu li{padding:8px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);
  cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combomenu li[role=option]:hover{background:var(--fill-soft)}
.combomenu .combo-empty{color:var(--muted);cursor:default}
#modelpick{margin-top:6px;color:var(--muted-strong)}

/* ---- активное юрлицо на главной кабинета ---- */
.active-entity-name{font-size:var(--fs-lg);color:var(--ink-strong)}
.active-entity-switch{font-size:var(--fs-sm);margin-left:var(--sp-2)}
.active-entity-req{margin-top:4px;font-size:var(--fs-sm);color:var(--muted-strong)}

/* ---- карточки юрлиц в настройках ---- */
.entity{border:1px solid var(--line-mid);border-radius:var(--r-sm);padding:var(--sp-3);
  margin-bottom:var(--sp-3)}
.entity-head{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;
  font-size:var(--fs-md);margin-bottom:var(--sp-2)}
.entity .badge{font-size:var(--fs-xs);font-weight:700;color:var(--ok-ink);
  background:var(--ok-fill,rgba(16,160,90,.12));border-radius:var(--r-sm);padding:1px 8px}

/* ---- раздел оператора инфраструктуры (/operator) ---- */
/* подзаголовок внутри карточки-секции */
.subhead{margin:var(--sp-5) 0 var(--sp-3);font-size:var(--fs-md);color:var(--ink-strong)}
.subhead .sub{font-size:var(--fs-xs);color:var(--faint);font-weight:400}
/* вложенная форма («добавить объект/майнера/запись») — визуально ниже карточки */
.subcard{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);
  padding:var(--sp-4);margin-top:var(--sp-4)}
/* строка радиокнопок «вид лица» */
.radios{display:flex;flex-wrap:wrap;gap:var(--sp-4);font-size:var(--fs-sm);
  font-weight:700;color:var(--muted-strong)}
.radios label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
/* кнопки в строке таблицы + строка правки на всю ширину */
.rowbtns{white-space:nowrap;display:flex;gap:var(--sp-2)}
tr.editrow > td{background:var(--surface)}
/* строка оборудования: модель · серийник · часы · убрать */
.asicrow{display:flex;flex-wrap:wrap;align-items:end;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.asicrow .combobox{flex:2 1 240px}
.asicrow .field:not(.combobox){flex:1 1 140px}
.asicrow .asic-hours{width:100%}
/* строка пула в отчёте: название · адрес · (у ручного) сумма BTC · убрать */
.poolrow{display:flex;flex-wrap:wrap;align-items:end;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.poolrow .pool-name{flex:3 1 260px}
.poolrow .pool-btc{flex:1 1 140px}
.poolrow .pool-days{flex:1 1 150px}
.poolrow .daypair{display:flex;gap:var(--sp-2)}
.poolrow .daypair input{width:100%;min-width:0}
/* запись квартала: свёрнутая шапка + раскрывающееся тело с формой */
.mg-item{border:1px solid var(--line-mid);border-radius:var(--r-md);margin-top:var(--sp-3)}
.mg-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);cursor:pointer}
.mg-head:hover{background:var(--fill-soft)}
.mg-title{font-weight:700;color:var(--ink-strong);margin-right:var(--sp-2)}
.mg-meta{font-size:var(--fs-sm);color:var(--muted-strong)}
.mg-caret{color:var(--muted);font-size:var(--fs-sm)}
.mg-body{padding:0 var(--sp-4) var(--sp-4)}
/* список причин, по которым отчёт не собрался (ответ 422) */
.problems{margin:var(--sp-2) 0 0;padding-left:1.2em}
.problems li{margin-top:4px}

/* импорт майнерских отчётов: «всё сошлось» и длинные адреса пулов */
.note.ok{background:var(--ok-tint);border:1px solid var(--ok-line);color:var(--ok-ink)}
.pool-addr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);
  word-break:break-all;max-width:22em}

/* ---- пагинатор списка асиков ---- */
.pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-top:var(--sp-4)}
.pager-info{font-size:var(--fs-sm);color:var(--muted-strong);font-weight:700}
