* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; margin: 0; background: #0b1220; color: #e8eefb; }
.container { max-width: 1100px; margin: 24px auto; padding: 0 16px; }
h1 { margin-bottom: 16px; }
.card { background: #121a2a; padding: 16px; border-radius: 12px; margin-bottom: 16px; border: 1px solid #1c2945; }
label { display:block; margin: 8px 0 4px; font-weight: 600; }
input, textarea, select { width: 100%; padding: 10px; border-radius: 8px; border: 1px solid #29395e; background:#0e1524; color:#e8eefb; }
button, a#btnZip { background:#2b76ff; color:white; padding:10px 14px; border:none; border-radius:8px; cursor:pointer; text-decoration:none; display:inline-block; }
button:hover, a#btnZip:hover { opacity: .92; }
.grid { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.row { display:flex; gap:8px; margin-top:8px; }
.row2 { display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
pre { white-space: pre-wrap; background:#0e1524; padding:8px; border-radius:8px; border:1px solid #29395e; height: 440px; overflow:auto; }
.tabs { margin-bottom: 8px; }
.tabs button { margin-right: 6px; background:#1a2a4a; }
.tabs button.active { outline: 2px solid #2b76ff; }
.hint { display:block; opacity:.75; margin-top:8px; }
@media (max-width: 900px) {
  .grid { grid-template-columns: 1fr; }
  pre { height: 320px; }
}
/* Layout chung */
.chat {
  background: #121a2a;
  border: 1px solid #1c2945;
  border-radius: 12px;
  padding: 12px;
  height: 70vh;
  overflow: auto;
}

.bubble {
  max-width: 78%;
  padding: 10px 12px;
  border-radius: 12px;
  margin: 8px 0;
  white-space: pre-wrap;
}

.user {
  background: #2451a6;
  margin-left: auto;
  border-bottom-right-radius: 4px;
}

.assistant {
  background: #1a2a4a;
  border-bottom-left-radius: 4px;
}

.toolbar {
  display: flex;
  gap: 8px;
  margin: 8px 0;
}

.toolbar > * { flex: 1; }

.row {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.grid3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
/* ==== Compact picks: thu nhỏ checkbox + khoảng đệm ==== */
:root {
  --pick-gap: 6px;
  --pick-pad-y: 4px;   /* giảm padding dọc */
  --pick-pad-x: 8px;
  --pick-scale: 0.85;  /* thu checkbox (0.8–0.9) */
} 

/* Checkbox chọn nhanh */
.assistant .pick,
label.pick {
  display: flex !important;
  align-items: flex-start;
  gap: var(--pick-gap);
  padding: var(--pick-pad-y) var(--pick-pad-x);
  margin: 4px 0;
  border: 1px dashed #2a3b66;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  user-select: none;
}
.assistant .pick > input[type="checkbox"],
label.pick > input[type="checkbox"],
label.pick > input.ai-pick {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  transform: scale(var(--pick-scale));
  transform-origin: top left;
  margin-top: 2px;            /* lệch nhẹ để thẳng dòng 1 của text */
  accent-color: #2b76ff;      /* màu tick */
  border-radius: 3px;
}

/* Nội dung chữ – chiếm phần còn lại, xuống dòng tự nhiên */
.assistant .pick > span,
label.pick > span {
  flex: 1 1 auto;
  display: block;
  line-height: 1.35;
  white-space: normal;
  word-break: break-word;
}

/* Thu hẹp khoảng cách dọc giữa các mục liên tiếp */
.assistant .pick + .pick,
label.pick + label.pick {
  margin-top: 4px;
}