/* Reset */
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Inter,"Helvetica Neue",Arial;
  background:var(--bg);
  color:var(--text);
}

/* Контейнер */
.container{max-width:1200px;margin:0 auto;padding:16px}

/* Шапка/навигация */
.header{position:sticky;top:0;z-index:50;background:var(--header-bg, rgba(11,18,32,.9));backdrop-filter:saturate(180%) blur(6px);border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;gap:.45rem;min-height:36px}
.brand{font-weight:800;letter-spacing:.2px;font-size:.66rem;color:var(--text);text-decoration:none}
.spacer{flex:1}

/* ===== Language switcher (CSP-safe) ===== */
.lang-switcher{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
}
.lang-switcher-select{
  min-height:22px;
  padding:.27rem .42rem;
  border:1px solid var(--control-border, var(--border));
  border-radius:7px;
  background:var(--control-bg, var(--input-bg));
  color:var(--control-text, var(--input-text));
  outline:none;
}
.lang-switcher-select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 22%, transparent);
}
.lang-switcher-btn{
  min-height:22px;
  padding:.27rem .45rem;
}

/* Доступный скрытый текст */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Кнопки */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.55rem .9rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;
  border:1px solid var(--primary);background:var(--primary);color:var(--primary-ink);
  transition:transform .18s ease-in-out, opacity .15s ease-in-out;
  text-decoration:none;
}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn.secondary{
  border-color:var(--border);
  background:color-mix(in srgb, var(--card2) 72%, transparent);
  color:var(--text);
}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn.danger{border-color:#6b1c1c;background:#6b1c1c}

/* Метки/бейджи */
.badge{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.2rem .5rem;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb, var(--card2) 80%, transparent);color:var(--text);font-size:.8rem;
}

/* Сообщения */
.alert{
  padding:.7rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:color-mix(in srgb, var(--card2) 86%, transparent);color:var(--text);
}
.alert.success{border-color:color-mix(in srgb, #2f9d57 56%, var(--border));background:color-mix(in srgb, #2f9d57 18%, var(--card2))}
.alert.warn{border-color:color-mix(in srgb, #e2a436 58%, var(--border));background:color-mix(in srgb, #e2a436 15%, var(--card2))}
.alert.danger{border-color:color-mix(in srgb, #d64545 56%, var(--border));background:color-mix(in srgb, #d64545 15%, var(--card2))}
.alert.info{border-color:color-mix(in srgb, var(--accent) 52%, var(--border));background:color-mix(in srgb, var(--accent) 13%, var(--card2))}

/* Формы */
.form-row{display:grid;gap:.5rem}
.form-control{
  width:100%;padding:.65rem .8rem;border:1px solid var(--control-border, var(--border));border-radius:var(--radius-sm);
  background:var(--control-bg, var(--input-bg));color:var(--control-text, var(--input-text));outline:none;transition:border .15s,box-shadow .15s;
}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 22%, transparent)}

/* Chrome/Edge/Safari autofill adjustments */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus{
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--text) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--surface-2, var(--input-bg)) inset !important;
  box-shadow: 0 0 0 1000px var(--surface-2, var(--input-bg)) inset !important;
  border-color: var(--control-border, var(--border)) !important;
  transition: background-color 999999s ease-out, color 999999s ease-out;
}

input:-webkit-autofill::first-line,
textarea:-webkit-autofill::first-line{
  font: inherit;
  color: var(--text) !important;
}

/* Firefox autofill parity */
input:-moz-autofill,
textarea:-moz-autofill,
select:-moz-autofill{
  box-shadow: 0 0 0 1000px var(--surface-2, var(--input-bg)) inset !important;
  color: var(--text) !important;
}

label{font-size:.9rem;color:var(--muted)}
.help{color:var(--muted);font-size:.85rem}
.form-errors{color:color-mix(in srgb, #d64545 78%, var(--text));font-size:.9rem}

/* Карточки/списки */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1rem;
  box-shadow:var(--shadow);
}
.card-list{display:grid;gap:.75rem}
.list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.list-item{padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}

/* Изображения */
.img-round{border-radius:12px;object-fit:cover}

/* Сетки и флексы */
.grid{display:grid;gap:1rem}
.grid.auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.flex{display:flex;gap:.75rem}
.row{display:flex;gap:.75rem;align-items:center}
.between{justify-content:space-between}
.grow{flex:1 1 auto}

/* Типографика и утилиты */
.m-0{margin:0}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}
.mt-0_5{margin-top:.35rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}
.text-muted{color:var(--muted)} .small{font-size:.9rem} .fw-600{font-weight:600}
hr{border:0;border-top:1px solid var(--border);margin:1rem 0}

/* Скрытия/адаптив */
.hide-sm{display:none}
@media (min-width: 760px){
  .hide-sm{display:initial}
  .grid-2{gap:1.2rem}
}



/* === MERGED: global/app_layout.css === */

  /* Header (app) — single source of truth */
  .header .container{max-width:1200px}
  .header-brand{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    text-decoration:none;
    min-width:0;
  }
  .header-logo{
    height:25px;
    width:auto;
    border-radius:5px;
    display:block;
  }

  .header-controls{
    display:flex;
    align-items:center;
    gap:.3rem;
    margin-left:.3rem;
    min-width:0;
  }

  .nav-wrapper{
    display:flex;
    align-items:center;
    gap:.6rem;
    min-width:0;
  }

  .nav-search-only{
    display:flex;
    gap:.24rem;
    align-items:center;
    margin-left:auto;
    min-width:0;
  }
  .nav-search-only input{
    min-width:0;
  }

/* Общие элементы для приложенческого layout (авторизованные страницы) */

/* Layout rhythm: keep section spacing centralized (app layout only) */
body.layout main.container > section{margin-bottom:1rem;}
body.layout main.container > section:last-child{margin-bottom:0;}
