@import url('fonts.css');

/* ==========================================================================
   Оформление по макетам заказчика (папка «оформление» в корне репозитория).
   Палитра и размеры взяты из ТЗ, приложенных к макетам, — менять их
   произвольно нельзя, это фирменный стиль «Техносэты».
   ========================================================================== */

:root {
    --navy: #202D3D;            /* RGB 32 45 61 — весь основной текст и заголовки */
    --navy-70: rgba(32, 45, 61, .7);   /* текст внутри таблиц — те же 70 % из ТЗ */
    --blue: #287FA8;            /* RGB 40 127 168 — рамки таблиц, панели, кнопки */
    --blue-bright: #2589B6;     /* RGB 37 137 182 — фон главной страницы */
    --orange: #D9613A;          /* RGB 217 97 58 — акценты и главные кнопки */
    --grey: #606060;            /* RGB 96 96 96 — заголовок на главной */
    --white: #FFFFFF;

    /* Толщины линий из ТЗ: контур 2, внутренние линии 0,5. */
    --line-outer: 2px;
    --line-inner: .5px;

    --field-border: var(--orange);   /* поля ввода в макетах обведены оранжевым */
    --muted: #7b8794;
}

/* --- база ---------------------------------------------------------------- */

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Montserrat', 'Segoe UI', sans-serif;
    font-weight: 500;
    color: var(--navy);
    background: var(--white);
}

h1 { font-size: 30px; font-weight: 700; margin: 0 0 16px; }
h2 { font-size: 20px; font-weight: 700; margin: 0 0 12px; }

a { color: var(--blue); }

.error { color: var(--orange); font-weight: 600; }
.ok { color: #0a7d3c; font-weight: 600; }
.muted-note { color: var(--muted); font-size: 12px; }

/* --- верхняя плашка ------------------------------------------------------ */

.site-header {
    background: var(--navy);
    color: var(--white);
    padding: 0 24px;
    height: 56px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.site-header a { color: var(--white); text-decoration: none; }
.site-header a:hover { color: #9fd4ec; }

.header-left, .header-right { display: flex; align-items: center; gap: 20px; }

/* Домик — ссылка на главную вместо текстового «HTRI». */
.header-home {
    display: flex;
    width: 28px;
    height: 28px;
    background: url('../img/home.svg') no-repeat center / contain;
}
.header-home:hover { opacity: .75; }

.header-logo { height: 34px; }

.site-header nav { display: flex; gap: 18px; font-size: 14px; font-weight: 600; }

/* Правая часть плашки набрана тем же кеглем и начертанием, что и меню слева, —
   иначе имя, «Сменить пароль» и «Выход» выглядели тремя разными шрифтами. */
.header-right,
.header-right a,
.header-right button { font-size: 14px; font-weight: 600; }

.header-user { color: #c7d2dd; }

/* Кнопка «Выход» в плашке — без фона, чтобы не спорить с логотипом. */
.header-right button {
    background: none;
    border: none;
    color: var(--white);
    font-family: inherit;
    cursor: pointer;
    padding: 0;
}
.header-right button:hover { color: #9fd4ec; }

/* --- контейнер страницы -------------------------------------------------- */

main { padding: 24px; max-width: 1100px; margin: 0 auto; }
main.wide { max-width: 1600px; }
/* Главная сама рисует фон во всю ширину — контейнер ей только мешает. */
main.full { padding: 0; max-width: none; }

/* --- таблицы ------------------------------------------------------------- */
/* Единый стиль всех таблиц проекта: контур 2px синий, внутренние линии 0,5px,
   шапка — Bold, содержимое — SemiBold в 70 % прозрачности (ТЗ Job.cshtml). */

/* border-collapse: separate — единственный режим, в котором у таблицы работает
   скругление углов. Поэтому внутренние линии рисуем только справа и снизу ячейки,
   а у крайних ячеек их снимаем: иначе они удвоили бы внешний контур. */
table {
    border-collapse: separate;
    border-spacing: 0;
    margin: 12px 0;
    border: var(--line-outer) solid var(--blue);
    border-radius: 10px;
    background: var(--white);
}

th, td {
    border-right: var(--line-inner) solid var(--blue);
    border-bottom: var(--line-inner) solid var(--blue);
    padding: 6px 10px;
    text-align: left;
}

th {
    font-size: 15px;
    font-weight: 700;
    color: var(--navy);
    background: var(--white);
}

td {
    font-size: 13px;
    font-weight: 600;
    color: var(--navy-70);
}

td a { color: var(--blue); font-weight: 600; }

table tr > *:last-child { border-right: none; }
table > tbody > tr:last-child > *,
table > tr:last-child > * { border-bottom: none; }

/* Фон угловых ячеек (цветные строки результата) тоже нужно скруглить,
   иначе он выступает за скруглённый контур таблицы. */
table > thead > tr:first-child > th:first-child,
table > tr:first-child > *:first-child { border-top-left-radius: 8px; }
table > thead > tr:first-child > th:last-child,
table > tr:first-child > *:last-child { border-top-right-radius: 8px; }
table > tbody > tr:last-child > *:first-child,
table > tr:last-child > *:first-child { border-bottom-left-radius: 8px; }
table > tbody > tr:last-child > *:last-child,
table > tr:last-child > *:last-child { border-bottom-right-radius: 8px; }

/* --- кнопки -------------------------------------------------------------- */

button, .btn {
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    color: var(--white);
    background: var(--blue);
    border: none;
    border-radius: 4px;
    padding: 8px 18px;
    cursor: pointer;
}
button:hover, .btn:hover { background: #22708f; }

button:disabled, .btn:disabled { background: #9aa4b2; cursor: not-allowed; opacity: .7; }

/* Оранжевая — там, где ТЗ требует акцент: «+ новый расчет» в списке расчётов. */
.btn-accent {
    background: var(--orange);
}
.btn-accent:hover { background: #BE4C27; }

/* «Рассчитать» — тот же вид, что и у остальных кнопок («Снять все»):
   заказчик попросил единый синий стиль вместо оранжевой крупной кнопки.
   Класс оставлен: по нему job.css ставит кнопку под правую колонку. */
.btn-primary { border-radius: 4px; }

.btn-outline {
    background: var(--white);
    color: var(--blue);
    border: 1px solid var(--blue);
}
.btn-outline:hover { background: #eef6fa; color: var(--blue); }

/* --- поля ввода ---------------------------------------------------------- */

input, select, textarea {
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    color: var(--navy);
    border: 1px solid var(--field-border);
    border-radius: 4px;
    padding: 6px 8px;
    background: var(--white);
}
input:focus, select:focus { outline: none; box-shadow: 0 0 0 2px rgba(217, 97, 58, .25); }
input[readonly] { background: #F3F5F7; color: var(--muted); border-color: #C9D3DC; }
input[type="checkbox"] { accent-color: var(--orange); }

form.inline { display: inline; }

/* --- выпадающий список (замена <datalist>, см. js/combobox.js) ------------ */

.combo { position: relative; }
.combo > input { width: 100%; }

.combo-list {
    display: none;
    position: absolute;
    z-index: 200;
    top: calc(100% + 4px);
    left: 0;
    width: 100%;
    min-width: 240px;
    max-height: 340px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--white);
    border: 1px solid var(--orange);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(32, 45, 61, .18);
    padding: 4px;
}
.combo-open > .combo-list { display: block; }

.combo-item {
    padding: 9px 12px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.combo-item:hover,
.combo-item.active { background: #FBEDE8; color: var(--orange); }
/* Совпавший фрагмент — чтобы при наборе было видно, почему строка в списке. */
.combo-item b { color: var(--orange); }
.combo-item:hover b, .combo-item.active b { color: inherit; }

.combo-empty {
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 500;
    color: var(--muted);
}

/* Полоса прокрутки списка — узкая и в цвете темы вместо чёрной браузерной. */
.combo-list { scrollbar-width: thin; scrollbar-color: var(--orange) transparent; }
.combo-list::-webkit-scrollbar { width: 8px; }
.combo-list::-webkit-scrollbar-track { background: transparent; }
.combo-list::-webkit-scrollbar-thumb {
    background: rgba(217, 97, 58, .55);
    border-radius: 4px;
}
.combo-list::-webkit-scrollbar-thumb:hover { background: var(--orange); }
