/*
 * Tachka's theme layer for RentALL's website (Sedulia/tachka-platform, theme/).
 * Loaded after every stock stylesheet (web/src/components/Html.js), so it covers what RentALL's own
 * variables cannot reach: the page itself, the type, the focus ring, and Bootstrap 3's white defaults.
 * Every value is a variable from web/public/css/variables.css, generated from the brand's tokens;
 * theme/literals.ts fails this file on any colour literal. Dark is the default; light by
 * <html data-theme="light">, whose roles the same variables carry.
 */

/* The page, and the type: Onest for reading, Geologica for headings, Noto Sans Armenian for Armenian,
   the dram sign from its own face (BRAND_BOOK section 5) */
html {
  background: var(--color-bg-canvas);
}

body {
  background: var(--color-bg-canvas);
  color: var(--color-text-primary);
  font-family: var(--font-family-body);
  font-size: 16px;
  line-height: 24px;
}

html[lang|="hy"] body {
  font-size: 17px;
  line-height: 28px;
}

h1, h2, h3, h4 {
  font-family: var(--font-family-heading);
  color: inherit;
}

html[lang|="hy"] h1, html[lang|="hy"] h2, html[lang|="hy"] h3, html[lang|="hy"] h4 {
  letter-spacing: 0;
}

a {
  color: var(--color-text-link-default);
}

a:hover,
a:focus {
  color: var(--color-text-link-hover);
}

::selection {
  background: var(--color-selection-bg);
  color: var(--color-selection-fg);
}

/* Focus: a 2 px ring outside a 2 px opaque gap, never removed (BRAND_BOOK section 6) */
:focus-visible {
  outline: var(--focus-ring) solid var(--color-focus-ring) !important;
  outline-offset: var(--focus-gap);
}

/* Bootstrap 3.4.1 draws these white or grey in bootstrap.min.css */
.modal-content,
.dropdown-menu,
.popover,
.panel,
.list-group-item,
.thumbnail {
  background-color: var(--color-bg-raised);
  color: var(--color-text-primary);
  border-color: var(--color-border-decorative);
}

.modal-header,
.modal-footer,
.panel-heading,
.panel-footer {
  border-color: var(--color-border-decorative);
}

.modal-backdrop.in {
  background-color: var(--color-bg-canvas);
  opacity: 0.8;
}

.well,
.input-group-addon {
  background-color: var(--color-bg-sunken);
  border-color: var(--color-border-decorative);
  color: var(--color-text-primary);
}

.form-control {
  background-color: var(--color-input-bg-default);
  color: var(--color-input-fg);
  border-color: var(--color-border-control-default);
  border-radius: var(--radius-control);
}

.form-control:hover {
  border-color: var(--color-border-control-hover);
}

.form-control:focus {
  border-color: var(--color-border-control-focus);
  box-shadow: none;
}

.form-control::placeholder {
  color: var(--color-input-placeholder);
  opacity: 1;
}

.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: var(--color-disabled-bg);
  color: var(--color-disabled-fg);
}

.has-error .form-control {
  border-color: var(--color-input-border-error);
}

.has-error .help-block,
.text-danger {
  color: var(--color-status-error-fg);
}

.text-muted,
.help-block {
  color: var(--color-text-secondary);
}

.btn-default {
  background-color: var(--color-action-secondary-bg-default);
  color: var(--color-action-secondary-fg);
  border-color: var(--color-action-secondary-border-default);
}

.btn-default:hover,
.btn-default:focus {
  background-color: var(--color-action-secondary-bg-hover);
  color: var(--color-action-secondary-fg);
  border-color: var(--color-action-secondary-border-hover);
}

.btn-default:active,
.btn-default.active {
  background-color: var(--color-action-secondary-bg-pressed);
  color: var(--color-action-secondary-fg);
}

.btn-primary {
  background-color: var(--color-action-primary-bg-default);
  color: var(--color-action-primary-fg);
  border-color: var(--color-action-primary-border);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--color-action-primary-bg-hover);
  color: var(--color-action-primary-fg);
  border-color: var(--color-action-primary-border);
}

.dropdown-menu > li > a {
  color: var(--color-text-primary);
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  background-color: var(--color-bg-pressed);
  color: var(--color-text-primary);
}

.dropdown-menu .divider,
hr {
  border-color: var(--color-border-decorative);
  background-color: var(--color-border-decorative);
}

.navbar-default {
  background-color: var(--color-bg-canvas);
  border-color: var(--color-border-decorative);
}

.nav-tabs {
  border-bottom-color: var(--color-border-decorative);
}

.nav-tabs > li > a:hover {
  background-color: var(--color-bg-raised);
  border-color: var(--color-border-decorative);
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  background-color: var(--color-bg-surface);
  color: var(--color-text-primary);
  border-color: var(--color-border-decorative);
  border-bottom-color: transparent;
}

.table > thead > tr > th,
.table > tbody > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > td {
  border-color: var(--color-border-decorative);
}

.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: var(--color-bg-sunken);
}

.pagination > li > a,
.pagination > li > span {
  background-color: var(--color-bg-surface);
  color: var(--color-text-link-default);
  border-color: var(--color-border-decorative);
}

.pagination > .active > a,
.pagination > .active > span {
  background-color: var(--color-action-primary-bg-default);
  color: var(--color-action-primary-fg);
  border-color: var(--color-action-primary-border);
}

.close {
  color: var(--color-text-primary);
  text-shadow: none;
  opacity: 0.8;
}

.tooltip-inner {
  background-color: var(--color-bg-raised);
  color: var(--color-text-primary);
}

.alert-success { background-color: var(--color-status-success-bg); color: var(--color-status-success-fg); border-color: var(--color-status-success-border); }
.alert-info { background-color: var(--color-status-info-bg); color: var(--color-status-info-fg); border-color: var(--color-status-info-border); }
.alert-warning { background-color: var(--color-status-warning-bg); color: var(--color-status-warning-fg); border-color: var(--color-status-warning-border); }
.alert-danger { background-color: var(--color-status-error-bg); color: var(--color-status-error-fg); border-color: var(--color-status-error-border); }

/* Motion: none for anyone who asks for none (BRAND_BOOK section 6) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0s !important;
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
  }
}
