/* ============================================================
   Тендеры — оформление. Только светлая тема.
   ============================================================ */

:root{
  color-scheme: light;
  --bg:#eef2f6;
  --panel:#ffffff;
  --panel-2:#f4f7fa;
  --panel-3:#e9eef4;
  --border:#dce3ec;
  --border-strong:#c3cedb;
  --text:#172033;
  --muted:#5c6a7d;
  --accent:#0d9488;
  --accent-hover:#0f766e;
  --accent-soft:rgba(13,148,136,.10);
  --accent-contrast:#ffffff;
  --danger:#d92d20;
  --shadow:0 10px 30px rgba(15,23,42,.08);
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --radius:14px;
  --radius-sm:9px;
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}   /* атрибут hidden важнее display у .btn/#reportForm */
html,body{height:100%}
body{
  font-family:"Inter","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--bg);color:var(--text);
  font-size:15px;line-height:1.45;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Список тендеров: приложение на всю высоту экрана */
body.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}
body.app .container{flex:1;min-height:0}

/* Шапка */
header{
  position:sticky;top:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.55rem 1.1rem;background:var(--panel);
  border-bottom:1px solid var(--border);flex:0 0 auto;
}
.header-left{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}
.header-left img{width:28px;height:28px;border-radius:8px;display:block}
.brand{font-size:1.1rem;font-weight:700;letter-spacing:.2px}
nav{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}
nav a{
  display:inline-flex;align-items:center;gap:.4rem;
  color:var(--muted);text-decoration:none;padding:.4rem .7rem;
  border-radius:8px;font-size:.92rem;font-weight:500;
  transition:background .15s,color .15s;
}
nav a svg{width:15px;height:15px;flex:0 0 auto}
nav a:hover{color:var(--text);background:var(--panel-2);text-decoration:none}
nav a.active{color:var(--accent);background:var(--accent-soft)}

/* Контейнеры */
.container{padding:1rem;display:flex;flex-direction:column;gap:1rem;overflow:auto}
body.app .container{overflow:hidden}
.page-head{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.page-head h1{font-size:1.4rem;font-weight:700;letter-spacing:.2px}
.page-head .sub{color:var(--muted);font-size:.92rem}

.panel{
  background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:1.1rem 1.2rem;flex:0 0 auto;
  box-shadow:var(--shadow-sm);
}
.table-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden}

/* Фильтры */
.filters{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.massbar{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.massbar .grow{flex:1 1 220px}

select,input,textarea{
  padding:.5rem .65rem;border:1px solid var(--border-strong);
  background:var(--panel-2);color:var(--text);border-radius:var(--radius-sm);
  font-size:.92rem;font-family:inherit;line-height:1.3;
  transition:border-color .15s,box-shadow .15s;
}
select{cursor:pointer}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}
input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}
input[type=date]{min-width:150px}
textarea{resize:vertical}

.btn{
  padding:.5rem .9rem;border:1px solid var(--accent);background:var(--accent);
  border-radius:var(--radius-sm);color:var(--accent-contrast);cursor:pointer;font-weight:600;
  text-decoration:none;display:inline-block;font-size:.92rem;font-family:inherit;
  white-space:nowrap;transition:background .15s,border-color .15s,transform .05s;
}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.small{padding:.32rem .6rem;font-size:.84rem}
.btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--text);font-weight:500}
.btn.ghost:hover{background:var(--panel-2);border-color:var(--accent);color:var(--accent)}

/* Таблица списка */
.table-wrap{flex:1 1 auto;min-height:0;overflow:auto}
table{
  width:max-content;border-collapse:separate;border-spacing:0;
  table-layout:fixed;font-size:.9rem;
}
th,td{
  padding:.5rem .65rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  vertical-align:middle;text-align:left;
  white-space:normal;overflow-wrap:anywhere;word-break:break-word;
  overflow:hidden;                       /* содержимое не выходит за границы ячейки */
}
/* Поля внутри ячеек подстраиваются под ширину столбца */
td input,td select{
  width:100%;max-width:100%;min-width:0;
  padding:.35rem .45rem;font-size:.88rem;
}
td input[type=checkbox]{width:16px;min-width:16px;max-width:16px;padding:0}
th:first-child,td:first-child{border-left:1px solid var(--border)}
tbody tr{transition:background .12s}
tbody tr:hover{background:var(--accent-soft)}
thead th{
  background:var(--panel-2);position:sticky;top:0;z-index:2;
  font-weight:600;white-space:normal;line-height:1.2;border-top:1px solid var(--border);
  border-bottom:1px solid var(--border-strong);
}
th.sortable a{color:var(--text);text-decoration:none;font-weight:600}
th.sortable a:hover{color:var(--accent)}
.arrow{font-size:.68rem;color:var(--accent);margin-left:.2rem}
.col-check{width:40px;text-align:center}
.cell,.wrap,.ellipsis{white-space:normal;overflow-wrap:anywhere;word-break:break-word}

/* Ссылки внутри таблицы: цвет обычного текста, жирные и подчёркнутые (без синего) */
td a{color:var(--text);font-weight:600;text-decoration:underline;text-underline-offset:2px}
td a:hover{color:var(--accent-hover);text-decoration:underline}

/* Статус: выпадающий список на всю ширину столбца */
.status-select{
  width:100%;max-width:100%;min-width:0;
  font-weight:600;border:0;border-radius:999px;
  padding:.28rem .5rem;font-size:.84rem;
  text-overflow:ellipsis;
}
/* Плашки статусов (овалы). В легенде кликабельны — фильтр по статусу */
.chip{
  display:inline-block;padding:.24rem .6rem;border-radius:999px;
  font-size:.82rem;font-weight:600;white-space:nowrap;
  text-decoration:none;
}
a.chip{cursor:pointer;transition:filter .15s,box-shadow .15s}
a.chip:hover{filter:brightness(1.06);box-shadow:0 0 0 2px var(--accent-soft);text-decoration:none}
.chip .cnt{
  display:inline-block;min-width:1.1em;margin-left:.3rem;padding:0 .3rem;
  border-radius:999px;background:rgba(255,255,255,.28);font-size:.76rem;
  text-align:center;line-height:1.35;
}
td .chip{white-space:normal;text-align:center}
.legend{
  display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;
  padding:.7rem .9rem;border-top:1px solid var(--border);background:var(--panel);
}
.legend .muted{margin:0 .3rem 0 0}
.muted{color:var(--muted)}
.hint{color:var(--muted);font-size:.86rem;margin-top:.6rem}

/* Вход */
.login{
  max-width:360px;margin:9vh auto;background:var(--panel);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:1.8rem 1.5rem;box-shadow:var(--shadow);text-align:center;
}
.login img{width:50px;height:50px;border-radius:14px;margin-bottom:.7rem}
.login h1{font-size:1.45rem;letter-spacing:.3px}
.login .sub{color:var(--muted);font-size:.92rem;margin:.25rem 0 1.3rem}
.login input{width:100%;margin-bottom:.6rem;text-align:left}
.login .btn{width:100%}

/* Настройки: секции одна под другой */
.section-head{
  display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--border);
}
.section-head h3{font-size:1.02rem;font-weight:700}
.section-head .badge{
  font-size:.78rem;color:var(--accent);background:var(--accent-soft);
  padding:.15rem .5rem;border-radius:999px;font-weight:600;
}
.stack{display:flex;flex-direction:column;gap:.75rem}
.form-add{display:grid;gap:.6rem;max-width:680px;margin-bottom:1rem;
  padding:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2)}
.form-inline{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem;
  padding:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2)}
.form-inline input,.form-inline select{flex:0 0 auto}

.mini{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem;table-layout:auto}
.mini thead th{
  background:var(--panel-3);font-weight:600;white-space:normal;text-align:left;
  padding:.55rem .65rem;border-bottom:1px solid var(--border-strong);
}
.mini th:first-child{border-top-left-radius:var(--radius-sm)}
.mini th:last-child{border-top-right-radius:var(--radius-sm)}
.mini th,.mini td{padding:.55rem .65rem;vertical-align:middle;border-bottom:1px solid var(--border)}
.mini tbody tr:hover{background:var(--accent-soft)}
.mini input,.mini select,.mini textarea{width:100%}
.mini textarea{min-height:46px;max-height:150px;overflow-y:auto;overflow-x:hidden;resize:vertical}
.mini th.num,.mini td.num{text-align:center;white-space:nowrap}
.mini td.num input,.mini td.num select{text-align:center;width:88px;margin:0 auto}

/* Действия в строках настроек — столбиком, чтобы кнопки не наезжали */
.actions{display:flex;flex-direction:column;gap:.45rem;align-items:flex-start;min-width:210px}
.actions form{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin:0}
.actions input{width:170px}

.alert{
  padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.9rem;
  border:1px solid var(--border-strong);background:var(--panel-2);
}
.alert.error{border-color:var(--danger);color:var(--danger);background:transparent}
.swatch{width:44px;height:28px;padding:2px;border:1px solid var(--border-strong);border-radius:6px;background:var(--panel);cursor:pointer}
.hidden-forms{display:none}

/* Действия в строке списка */
.row-actions{display:flex;flex-direction:column;gap:.3rem;align-items:stretch}
.row-actions .btn{text-align:center}

/* ============================================================
   Страница лота (отчёт)
   ============================================================ */
body.lot{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.lot-head{
  flex:0 0 auto;padding:.8rem 1.1rem;background:var(--panel);
  border-bottom:1px solid var(--border);
}
.lot-title{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.lot-title h1{font-size:1.15rem;font-weight:700;line-height:1.25}
.lot-meta{display:flex;gap:1.1rem;flex-wrap:wrap;color:var(--muted);font-size:.86rem;margin-top:.45rem}
.lot-meta code{background:var(--panel-2);padding:.05rem .35rem;border-radius:6px;font-size:.85rem}

.lot-main{
  flex:1;min-height:0;display:grid;gap:1rem;padding:1rem;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
}
@media (max-width:1000px){
  body.lot{height:auto;overflow:auto}
  .lot-main{grid-template-columns:1fr}
  .lot-report{min-height:60vh}
}

.lot-report{
  display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden;
}
.lot-report-head{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.7rem .9rem;border-bottom:1px solid var(--border);flex:0 0 auto;
}
.lot-report-head h2{font-size:1.02rem;font-weight:700}
.lot-tools{display:flex;gap:.4rem;align-items:center}
.lot-tools form{margin:0}
#reportForm{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.report-editor{
  flex:1 1 auto;min-height:0;width:100%;border:0;border-radius:0;resize:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  font-size:.92rem;line-height:1.55;background:var(--panel);padding:1rem 1.2rem;
}

.lot-side{display:flex;flex-direction:column;min-height:0;overflow:auto}
.lot-block{display:flex;flex-direction:column}
.doc-group{margin-bottom:.7rem}
.doc-group-title{
  font-size:.78rem;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;
}
.doc-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}
.doc-list a{word-break:break-word}
.field-label{font-size:.84rem;color:var(--muted);margin:.2rem 0 .35rem}
.notes-editor,.lot-block textarea{width:100%}
#documents,#notes{resize:vertical}
.lot-save{margin-top:.9rem}
.lot-save .btn{width:100%}

/* Markdown внутри отчёта */
.md{flex:1 1 auto;min-height:0;overflow:auto;padding:1.1rem 1.3rem}
.md>:first-child{margin-top:0}
.md h1,.md h2,.md h3,.md h4{line-height:1.3;font-weight:700;margin:1.1rem 0 .5rem}
.md h1{font-size:1.4rem}
.md h2{font-size:1.2rem}
.md h3{font-size:1.05rem}
.md h4{font-size:.98rem}
.md p{margin:.55rem 0}
.md ul,.md ol{margin:.5rem 0 .5rem 1.4rem}
.md li{margin:.2rem 0}
.md a{color:var(--accent);text-decoration:underline}
.md blockquote{
  margin:.6rem 0;padding:.4rem .9rem;border-left:3px solid var(--accent);
  background:var(--panel-2);color:var(--muted);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.md code{
  background:var(--panel-3);padding:.1rem .35rem;border-radius:6px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;
}
.md pre{
  background:var(--panel-3);padding:.8rem 1rem;border-radius:var(--radius-sm);
  overflow:auto;margin:.6rem 0;
}
.md pre code{background:none;padding:0}
.md hr{border:0;border-top:1px solid var(--border);margin:1rem 0}
.md table{width:auto;table-layout:auto;border-collapse:collapse;margin:.6rem 0;font-size:.92rem}
.md th,.md td{border:1px solid var(--border-strong);padding:.4rem .6rem;overflow:visible;white-space:normal}
.md th{background:var(--panel-2)}
.md img{max-width:100%}

/* Полоса прокрутки */
.table-wrap::-webkit-scrollbar{width:10px;height:10px}
.table-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}
.table-wrap::-webkit-scrollbar-track{background:transparent}
