html {
  font-size: 14px;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.login-body {
  position: relative;
  min-height: 100vh;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e8f3ea url("../images/login-bg.jpg") center / cover no-repeat fixed;
}

.login-body::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(2px);
}

.login-card {
  position: relative;
  z-index: 1;
  width: min(420px, calc(100% - 32px));
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(6px);
  border-radius: 12px;
  padding: 28px 24px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
}

.login-card h1 {
  font-size: 1.4rem;
  margin-bottom: 8px;
  white-space: nowrap;
}

.admin-top {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 12px 20px;
  background: #7b1e1e;
  color: #fff;
}

.admin-top a {
  color: #fff;
  text-decoration: none;
}

.admin-top .brand {
  font-weight: 700;
}

.admin-top nav {
  display: flex;
  gap: 16px;
  flex: 1;
}

.user-box {
  display: flex;
  align-items: center;
  gap: 12px;
}

.permission-account {
  margin-bottom: 12px;
}

.permission-account-name {
  color: #337ab7;
  font-weight: 700;
}

.home-facts dd {
  margin-bottom: 8px;
}

.news-filter {
  margin-bottom: 12px;
}

.news-filter .row {
  margin-bottom: 10px;
}

.filter-field {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.filter-label {
  width: 38%;
  flex: 0 0 38%;
  padding-top: 7px;
  color: #333;
}

.filter-value {
  width: 62%;
  flex: 1 1 auto;
  min-width: 0;
}

.filter-value .dx-texteditor,
#tabInfo .dx-texteditor,
#tabField .dx-texteditor,
#tabSeo .dx-texteditor {
  width: 100%;
}

#newsImagePreview {
  display: block;
  width: 100%;
  height: 180px;
  border-radius: 5px;
}

#htmlEditorNews {
  border: 1px solid #ddd;
  padding: 5px;
  width: 100%;
  max-width: 100%;
  min-height: 500px !important;
  resize: both;
  overflow: auto;
}

#htmlEditorNews.dx-htmleditor-outlined {
  min-height: 500px !important;
}

#htmlEditorNews .dx-htmleditor-content {
  font-family: small arial, helvetica, tahoma, verdana, sans-serif;
  font-size: 16px;
  color: #020202;
  line-height: 1.42;
}

#htmlEditorNews .dx-htmleditor-content p {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
  font-size: 16px;
  color: #020202;
  font-family: small arial, helvetica, tahoma, verdana, sans-serif;
}

#htmlEditorNews .dx-htmleditor-content img {
  max-width: 100%;
}

#htmlEditorNews .dx-htmleditor-toolbar-format.dx-size-format {
  width: 72px;
}

#htmlEditorNews .dx-htmleditor-toolbar-format.dx-header-format {
  width: 136px;
}

#htmlEditorNews .dx-htmleditor-content h2 {
  font-family: small arial, helvetica, tahoma, verdana, sans-serif;
  font-size: unset !important;
}

#tabpanel-container .dx-multiview-item-content {
  padding: 15px;
}

.news-keyword-group {
  margin-top: 16px;
}

.tableKeyword_NameSelected {
  width: 100%;
  margin-top: 8px;
}

.tableKeyword_NameSelected th,
.tableKeyword_NameSelected td {
  padding: 5px;
  border-bottom: 1px solid #ddd;
}

.seo-keyword-list .dx-list-select-all {
  display: none;
}

.keyword-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.keyword-volume {
  color: #666;
}

#addNewsPopup .dx-popup-content .dx-scrollview {
  height: 100%;
}

.filter-dates {
  display: flex;
  gap: 8px;
}

.filter-dates > div {
  flex: 1;
  min-width: 0;
}

#btnSearch {
  display: inline-block;
}

.filter-hint {
  margin-top: 2px;
  font-size: 12px;
  color: #999;
}

.news-note {
  overflow: hidden;
}

#girdDataNews .news-thumb {
  width: 90px;
  height: auto;
  display: block;
  margin-bottom: 4px;
}

#girdDataNews .browse-news,
#girdDataNews .browse-field,
#girdDataNews .browse-seo {
  display: block;
  white-space: normal;
  text-align: center;
}

#girdDataNews .browse-field {
  color: #00e8c8;
}

#girdDataNews .browse-seo {
  color: green;
}

#girdDataNews .schedule-text {
  color: blue;
  white-space: normal;
  margin-top: 4px;
}

#girdDataNews .schedule-actions {
  margin-top: 6px;
  text-align: center;
}

#girdDataNews .schedule-actions .btn {
  white-space: normal;
}

.schedule-hide-home,
.schedule-field {
  margin-top: 12px;
}

.url-change-note {
  color: #d9534f;
  font-style: italic;
  margin-bottom: 12px;
}

.news-title {
  font-weight: 700;
  white-space: normal;
  margin-bottom: 6px;
}

#newsImagePreview {
  width: 100%;
  max-height: 180px;
  object-fit: contain;
  border: 1px solid #ddd;
}

.mst-badge {
  display: inline-block;
  margin-bottom: 8px;
  background: #dc3545;
  color: #fff;
  padding: 2px 6px;
  font-size: 12px;
}

#newsBasicForm .dx-form-group-caption,
#formSeo .dx-form-group-caption {
  font-size: inherit;
  font-weight: 700;
  color: blue;
}

#newsBasicForm .seo-keyword-group > .dx-form-group-caption,
#newsBasicForm .display-keyword-group > .dx-form-group-caption,
#formSeo .seo-keyword-group > .dx-form-group-caption,
#formSeo .display-keyword-group > .dx-form-group-caption {
  display: block;
}

.seo-keyword-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.quick-keyword-form {
  box-sizing: border-box;
  padding: 15px;
}

#newsBasicForm .dx-field-item-label-location-top,
#newsBasicForm .dx-field-item-label-location-top .dx-field-item-label-content,
#newsBasicForm .dx-field-item-label-location-top .dx-field-item-label-text {
  display: block;
  width: 100%;
}

.field-count-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.field-count {
  flex: 0 0 auto;
  font-weight: 400;
  color: #333;
  white-space: nowrap;
}

.field-count-row .dx-field-item-required-mark {
  margin-left: 2px;
}

#newsBasicForm .content-group {
  position: relative;
}

#contentCount {
  position: absolute;
  top: 10px;
  right: 0;
}

.add-news-popup .dx-popup-bottom.dx-toolbar {
  padding-top: 0;
}

.news-check-note {
  color: #d9534f;
  margin: 0 0 12px;
  white-space: pre-wrap;
}

.ccpl-search-phrase {
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #e7f1ff;
  border-left: 4px solid #0d6efd;
  font-size: 16px;
  font-weight: 700;
  color: #0d47a1;
}

#search-box-Document {
  margin-bottom: 15px;
}

.law-citation-note {
  text-align: right;
}

.law-citation-note b {
  color: red;
}

.law-citation-note span {
  color: blue;
}

.master-detail-caption {
  margin-bottom: 8px;
}

.review-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.review-heading h1,
.review-author {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.2;
  color: #212529;
}

.review-author {
  white-space: nowrap;
}

.review-status {
  text-align: right;
  margin-bottom: 12px;
}

.review-status b {
  display: inline-block;
  color: #fff;
  padding: 5px 8px;
  border-radius: 3px;
}

.review-chuyensau {
  color: red;
  font-style: italic;
  margin-bottom: 15px;
}

.review-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

.review-actions > div {
  flex: 0 0 auto;
  width: auto;
}

.stat-filter {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-bottom: 16px;
}

.stat-date {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stat-date label {
  min-width: 72px;
  margin: 0;
}

.stat-date > div {
  width: 180px;
}

.home-stat-caption {
  text-align: center;
  font-weight: bold;
  margin: 8px 0 4px;
}

.stat-grid,
.stat-pie {
  margin-top: 10px;
}

.stat-pie {
  margin: 15px 0;
  min-height: 360px;
}

.keyword-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 12px;
}

.keyword-heading h1 {
  margin: 0;
}

.keyword-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}

.keyword-tab-page {
  box-sizing: border-box;
  height: 100%;
  padding: 15px;
  overflow: auto;
}

#keywordForm .dx-field-item {
  flex-direction: column;
  align-items: stretch;
}

#keywordForm .dx-field-item-label {
  width: auto !important;
  max-width: 100%;
  padding: 0 0 4px;
}

#keywordForm .dx-field-item-content {
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
  margin: 0 !important;
}

#keywordForm .dx-htmleditor,
#keywordForm .dx-texteditor {
  max-width: 100%;
}