/* Self Coach, bản thử nhanh. Thiết kế cho điện thoại trước. */
:root {
  --nen: #fbf8f3;
  --chu: #23201c;
  --chu-nhat: #6b645b;
  --vien: #ddd5c8;
  --nhan: #1f6f6b;        /* xanh ngọc ấm */
  --nhan-chu: #ffffff;
  --o-nhap: #ffffff;
  --nut-tat: #c9c2b7;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --nen: #1a1917;
    --chu: #f1ece4;
    --chu-nhat: #b3aba0;
    --vien: #3d3934;
    --nhan: #4fb3ad;
    --nhan-chu: #10201f;
    --o-nhap: #24221f;
    --nut-tat: #4a4640;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --nen: #1a1917; --chu: #f1ece4; --chu-nhat: #b3aba0; --vien: #3d3934;
  --nhan: #4fb3ad; --nhan-chu: #10201f; --o-nhap: #24221f; --nut-tat: #4a4640;
  color-scheme: dark;
}

/* Phòng ngừa: thuộc tính hidden luôn thắng, dù lớp CSS nào đặt display khác (ví dụ .nut) */
[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--nen);
  color: var(--chu);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.55;
}
#khung {
  max-width: 560px;
  margin: 0 auto;
  padding: 24px 16px 32px;
  min-height: 100vh;
  min-height: 100dvh;
}
.man[hidden] { display: none; }
h1 { font-size: 26px; margin: 8px 0 16px; letter-spacing: -0.01em; }
p { margin: 0 0 16px; }
.nhat { color: var(--chu-nhat); }
.gioi-thieu { margin-bottom: 24px; }

.nhan { display: block; font-weight: 600; margin-bottom: 8px; }
input[type="text"] {
  width: 100%;
  font: inherit;
  font-size: 18px; /* từ 16px trở lên để iPhone không tự phóng to */
  padding: 12px 14px;
  border: 1px solid var(--vien);
  border-radius: 12px;
  background: var(--o-nhap);
  color: var(--chu);
  margin-bottom: 20px;
}
input[type="text"]:focus { outline: 2px solid var(--nhan); outline-offset: 1px; }

.o-danh-dau {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 16px;
  cursor: pointer;
}
.o-danh-dau input {
  width: 24px; height: 24px;
  margin: 2px 0 0;
  flex: none;
  accent-color: var(--nhan);
}

.nut {
  display: block;
  width: 100%;
  font: inherit;
  font-weight: 600;
  padding: 14px 16px;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  margin-top: 8px;
}
.nut-chinh { background: var(--nhan); color: var(--nhan-chu); }
.nut:disabled { background: var(--nut-tat); color: var(--chu-nhat); cursor: not-allowed; }

.dau-tro-chuyen h1 { margin-bottom: 8px; }
.loi-chao { font-size: 20px; }

/* ---- Màn trò chuyện: khung, thanh nhập, khung hỗ trợ ---- */
#man-tro-chuyen {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 48px);
  min-height: calc(100dvh - 48px);
}
.dau-tro-chuyen h1 { margin-bottom: 8px; }
.vung-tin-nhan { flex: 1 1 auto; }
.loi-chao { font-size: 20px; }

.thanh-nhap {
  position: sticky;
  bottom: 0;
  background: var(--nen);
  padding-top: 8px;
  margin-top: 16px;
}
#form-gui {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}
#o-nhap-tin {
  flex: 1 1 auto;
  font: inherit;
  font-size: 16px;
  padding: 12px 14px;
  border: 1px solid var(--vien);
  border-radius: 14px;
  background: var(--o-nhap);
  color: var(--chu);
  resize: none;
  max-height: 120px;
}
#o-nhap-tin:disabled { opacity: 0.6; }
.nut-gui {
  flex: none;
  font: inherit;
  font-weight: 600;
  padding: 12px 18px;
  border: 0;
  border-radius: 14px;
  background: var(--nhan);
  color: var(--nhan-chu);
  cursor: pointer;
}
.nut-gui:disabled { background: var(--nut-tat); color: var(--chu-nhat); cursor: not-allowed; }

.nut-link {
  display: block;
  margin: 10px auto 0;
  background: none;
  border: 0;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  color: #b3261e;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 4px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .nut-link { color: #ff8a80; }
}
:root[data-theme="dark"] .nut-link { color: #ff8a80; }

/* Lớp phủ toàn màn khi khung hỗ trợ mở to */
.man-phu {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: flex-end;
  padding: 0;
}
.man-phu[hidden] { display: none; }
@media (min-width: 480px) {
  .man-phu { align-items: center; justify-content: center; padding: 16px; }
}

.khung-ho-tro {
  width: 100%;
  max-width: 480px;
  max-height: 85vh;
  overflow-y: auto;
  background: var(--nen);
  color: var(--chu);
  border: 1px solid var(--vien);
  border-radius: 20px 20px 0 0;
  padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 480px) {
  .khung-ho-tro { border-radius: 20px; }
}
.khung-ho-tro h2 { margin: 0 0 14px; font-size: 20px; }
.ds-duong-day { list-style: none; margin: 0 0 14px; padding: 0; }
.ds-duong-day li {
  padding: 10px 0;
  border-bottom: 1px solid var(--vien);
  font-size: 16px;
}
.ds-duong-day li:last-child { border-bottom: 0; }
.ds-duong-day a { color: var(--nhan); font-weight: 700; text-decoration: none; }
#loi-nhan-ho-tro { font-size: 15px; color: var(--chu-nhat); margin-bottom: 16px; }

.hang-nut-ho-tro { display: flex; gap: 10px; }
.nut-phu {
  flex: 1;
  font: inherit;
  font-weight: 600;
  padding: 12px;
  border: 1px solid var(--vien);
  border-radius: 12px;
  background: var(--o-nhap);
  color: var(--chu);
  cursor: pointer;
}

.thanh-ho-tro-thu-nho {
  position: sticky;
  bottom: 0;
  display: block;
  width: 100%;
  margin-top: 10px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  padding: 10px;
  border: 1px solid #b3261e;
  border-radius: 12px;
  background: #fdecea;
  color: #b3261e;
  cursor: pointer;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .thanh-ho-tro-thu-nho { background: #3a2220; color: #ff8a80; border-color: #ff8a80; }
}
:root[data-theme="dark"] .thanh-ho-tro-thu-nho { background: #3a2220; color: #ff8a80; border-color: #ff8a80; }

/* ---- Bong bóng tin nhắn ---- */
.tin-nhan {
  max-width: 85%;
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: 16px;
  font-size: 17px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}
.tin-nhan--nguoi-dung {
  margin-left: auto;
  background: var(--nhan);
  color: var(--nhan-chu);
  border-bottom-right-radius: 4px;
}
.tin-nhan--nguoi-khai-van {
  margin-right: auto;
  background: var(--o-nhap);
  border: 1px solid var(--vien);
  border-bottom-left-radius: 4px;
}
.tin-nhan--dang-go::after {
  content: "▍";
  margin-left: 2px;
  animation: nhap-nhay 1s step-start infinite;
}
@keyframes nhap-nhay { 50% { opacity: 0; } }

.loi-tro-chuyen {
  font-size: 14px;
  color: #b3261e;
  margin: 0 0 8px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .loi-tro-chuyen { color: #ff8a80; }
}
:root[data-theme="dark"] .loi-tro-chuyen { color: #ff8a80; }

/* ---- Đầu màn trò chuyện: tiêu đề + nút kết thúc buổi ---- */
.dau-tro-chuyen {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.dau-tro-chuyen h1 { margin: 0; }
.nut-link-nho {
  background: none;
  border: 1px solid var(--vien);
  border-radius: 999px;
  font: inherit;
  font-size: 14px;
  color: var(--chu-nhat);
  padding: 6px 14px;
  cursor: pointer;
  white-space: nowrap;
}

/* ---- Cuối buổi: chấm sao, góp ý, bản ghi ---- */
.hang-sao {
  display: flex;
  gap: 6px;
  margin: 4px 0 24px;
}
.nut-sao {
  background: none;
  border: 0;
  font-size: 34px;
  line-height: 1;
  padding: 4px;
  cursor: pointer;
  color: var(--vien);
}
.nut-sao.da-chon { color: #e0a623; }

#o-gop-y, .ban-ghi-du-phong {
  width: 100%;
  font: inherit;
  font-size: 16px;
  padding: 12px 14px;
  border: 1px solid var(--vien);
  border-radius: 12px;
  background: var(--o-nhap);
  color: var(--chu);
  margin-bottom: 16px;
  resize: vertical;
}
.ban-ghi-du-phong { font-size: 14px; min-height: 160px; }

.nut-vien {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  font-weight: 600;
  padding: 14px 16px;
  border: 1px solid var(--vien);
  border-radius: 12px;
  background: var(--o-nhap);
  color: var(--chu);
  cursor: pointer;
  margin-top: 12px;
}
.goi-y-gui { font-size: 14px; color: var(--chu-nhat); margin: 4px 0 0; }
#man-cuoi-buoi .nut-link-nho { display: block; width: 100%; text-align: center; margin-top: 16px; box-sizing: border-box; }
