:root{
  --bg:#fefaf3;
  --ink:#3f3a34;
  --brown:#8a6a58;
  --brown2:#5f473b;
  --accent:#9c6b3f;
  --line:#d8c29a;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--ink);
}

a{color:var(--brown2); text-decoration:none}
a:hover{text-decoration:underline}

.wrap{max-width:1100px; margin:0 auto; padding:18px}

.top{
  display:flex; gap:14px; align-items:baseline; justify-content:space-between;
  border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:14px;
}

.brand{font-weight:700; letter-spacing:.5px}

.badge{
  display:inline-block; padding:2px 8px; border:1px solid var(--line);
  border-radius:999px; font-size:12px; color:var(--brown2);
}

/* ===== GENERIC GRID ===== */
.grid{display:grid; grid-template-columns: 1.2fr .8fr; gap:16px}

/* ===== CARD ===== */
.card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:rgba(255,255,255,.35);
  min-width:0; /* важно: не даём grid распираться */
}

h1,h2,h3{margin:.2em 0 .5em}

.small{font-size:12px; color:#6b625b}
.small-muted{opacity:.75}

/* ===== TABLES: STABLE DEFAULTS ===== */
/* ВАЖНО: таблицы по умолчанию остаются таблицами (НЕ display:block) */
table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  display:table;
  table-layout:auto;
}

th,td{
  padding:8px 8px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}

/* Чтобы длинные строки не распирали макет */
th,td{
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* Если где-то нужно не ломать числа/короткие значения — используйте класс .num */
.num{white-space:nowrap}

/* Точечный скролл для реально широких таблиц (обёртка) */
.table-scroll{overflow-x:auto; max-width:100%}
.table-scroll table{min-width:720px}

/* ===== KPI ===== */
.kpi{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.kpi div{border:1px dashed var(--line); border-radius:14px; padding:10px}

/* ===== FORMS ===== */
input,textarea,select{
  width:100%; padding:10px; border:1px solid var(--line); border-radius:12px;
  background:rgba(255,255,255,.55); color:var(--ink)
}
textarea{min-height:180px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
button{
  padding:10px 12px; border:1px solid var(--line); border-radius:12px;
  background:var(--brown); color:#fff; cursor:pointer;
}
button:hover{filter:brightness(1.03)}

hr{border:none; border-top:1px solid var(--line); margin:14px 0}
svg{max-width:100%}

/* ===== SIMPLE BARS ===== */
.bar{
  height:10px;
  background: rgba(0,0,0,.08);
  border-radius: 999px;
  overflow:hidden;
}
.bar > i{
  display:block;
  height:100%;
  background: rgba(0,0,0,.35);
  border-radius: 999px;
}
.bar.big{height:14px}

/* ===== 2-COLUMN LAYOUT WITH SIDEBAR ===== */
.layout{
  display:grid;
  grid-template-columns: 1fr 360px; /* правая колонка */
  gap:18px;
  align-items:start;
}
.maincol{min-width:0}
.sidecol{position:relative}

.side-card{
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:14px;
  margin-bottom:14px;
}
.side-title{font-weight:700; margin-bottom:6px}

/* ===== TOP NAV ===== */
.nav{display:flex; gap:10px; flex-wrap:wrap}
.nav-a{
  text-decoration:none;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.10);
}
.nav-a:hover{background:rgba(0,0,0,.03)}
.nav-a-on{font-weight:700; background:rgba(0,0,0,.04)}

/* ===== RESPONSIVE ===== */
@media (max-width:1100px){
  .grid{grid-template-columns:1fr !important}
}
@media (max-width:980px){
  .layout{grid-template-columns:1fr}
}

/* hard clamp for bars everywhere */
.bar { width:100%; max-width:100%; overflow:hidden; }
.bar > i { max-width:100%; }
td, th { overflow:hidden; } /* чтобы внутри ячеек ничего не торчало */