
body {
  font-family: "Microsoft YaHei", sans-serif;
  margin: 0;
  padding: 0;
  background-color: #f5f6f7;
}
.container {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px 16px;
}
.quick-input-hint {
  background: #e3f2fd;
  padding: 16px 20px;
  border-radius: 12px;
  margin-bottom: 20px;
  font-size: 16px;
  line-height: 1.7;
}
.quick-input-hint p { margin: 0 0 8px; }
.quick-input-hint p:last-child { margin-bottom: 0; }
h2 {
  text-align: center;
  font-size: 30px;
  margin-bottom: 24px;
  font-weight: bold;
  color: #2a2a2a;
  letter-spacing: 1px;
}
textarea {
  width: 100%;
  font-size: 20px;
  padding: 18px;
  border-radius: 12px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  height: 30vh;
  background-color: white;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.output {
  background-color: #ffffff;
  border-radius: 16px;
  padding: 24px;
  margin-top: 30px;
  font-size: 18px;
  line-height: 1.7;
  box-shadow: 0 3px 8px rgba(0,0,0,0.06);
}
table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
  font-size: 16px;
  table-layout: fixed;
}
th, td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}
/* PDF 输出样式优化 */
@media print {
  .output {
    font-size: 20px;
    line-height: 1.6;
    padding: 20px;
  }
  .day-plan {
    page-break-before: always !important;
    page-break-inside: avoid !important;
    break-before: page !important;
  }
  .day-plan h3 {
    page-break-before: always;
  }
  body {
    -webkit-print-color-adjust: exact;
  }
  table {
    font-size: 20px;
    line-height: 1.6;
    border-collapse: collapse;
    margin-top: 16px;
    width: 100%;
  }
  table th, table td {
    padding: 12px 14px;
    border: 1px solid #666;
  }
}

/* 按钮美化 */
button {
  background-color: #4CAF50;
  color: white;
  padding: 14px 20px;
  margin: 16px auto;
  display: block;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 18px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
button:hover {
  background-color: #45a049;
}
button:active {
  transform: scale(0.97);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* PDF 按钮居中 */
#pdfButton {
  display: none;
  margin: 24px auto;
  text-align: center;
  width: fit-content;
  background-color: #2196F3;
}
.payment-panel {
  max-width: 520px;
  margin: 12px auto 28px;
  padding: 20px;
  background: #fff;
  border: 1px solid #cfe4d4;
  border-radius: 14px;
  text-align: center;
  box-shadow: 0 3px 8px rgba(0,0,0,0.06);
}
.payment-panel[hidden] { display: none; }
.payment-panel h3 { margin: 0 0 10px; }
.payment-panel p { line-height: 1.6; }
.payment-qr { display: block; max-width: min(100%, 320px); height: auto; margin: 12px auto; }
.payment-note { color: #555; font-size: 14px; }
.payment-panel button { width: auto; max-width: 100%; font-size: 16px; }
.payment-panel .payment-cancel { background: #777; }

/* 页脚版权统一居中 */
.page-footer {
  text-align: center;
  font-size: 20px;
  color: #888;
  margin-top: 40px;
  margin-bottom: 20px;
}

@keyframes blink {
  0% { content: ''; }
  33% { content: '.'; }
  66% { content: '..'; }
  100% { content: '...'; }
}

table {
  width: 100%;
  border-collapse: collapse;
  word-break: break-word;
  table-layout: fixed;
}
th, td {
  word-break: break-word;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* PC端表格样式 */
@media (min-width: 769px) {
  table {
    table-layout: fixed;
  }
  th, td {
    padding: 8px;
    font-size: 15px;
    overflow-wrap: anywhere;
  }
  table th:nth-child(1), table td:nth-child(1) { width: 11%; }
  table th:nth-child(2), table td:nth-child(2) { width: 30%; }
  table th:nth-child(3), table td:nth-child(3) { width: 13%; }
  table th:nth-child(4), table td:nth-child(4) { width: 22%; }
  table th:nth-child(5), table td:nth-child(5) { width: 24%; }
}

/* 移动端样式 */
@media (max-width: 768px) {
  h2 {
    font-size: 28px;
  }
  .output {
    overflow-x: auto;
    padding: 20px;
  }
  table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    border: 1px solid #ccc;
    font-size: 14px;
    word-break: break-word;
  }
  th, td {
    font-size: 14px;
    padding: 6px 4px;
    border: 1px solid #ccc;
    word-break: break-word;
    white-space: normal;
    box-sizing: border-box;
    vertical-align: top;
  }
  th:nth-child(1), td:nth-child(1) { width: 11%; }
  th:nth-child(2), td:nth-child(2) { width: 30%; }
  th:nth-child(3), td:nth-child(3) { width: 13%; }
  th:nth-child(4), td:nth-child(4) { width: 22%; }
  th:nth-child(5), td:nth-child(5) { width: 24%; }
  textarea {
    font-size: 20px;
    height: 28vh;
  }
  button {
    font-size: 24px;
    width: 85%;
    padding: 16px;
  }
  .my-trip-item {
    width: 100%;
    font-size: 16px;
  }
}

.loading-road {
  font-size: 16px;
  font-weight: bold;
  margin: 16px auto;
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  max-width: 100%;
}
#roadTrack {
  display: inline-block;
  font-family: monospace;
  font-size: 18px;
  min-width: 260px;
}
.dot-typing {
  display: inline-block;
  width: 1em;
  text-align: left;
}
.dot-typing::after {
  content: '...';
  animation: blink 1s steps(3, jump-none) infinite;
}

/* PDF导出专用：兼容5列/6列表格 */
.pdf-export table {
  table-layout: fixed !important;
  width: 100% !important;
  font-size: 10px !important;
  line-height: 1.6 !important;
}
.pdf-export th, .pdf-export td {
  padding: 5px !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  vertical-align: top !important;
}

/* 我的旅行：轻量本地历史卡片 */
.my-trips {
  margin-top: 24px;
  padding: 20px;
  border-radius: 12px;
  background-color: #ffffff;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.my-trips h3 {
  margin: 0 0 12px;
  font-size: 20px;
  color: #2a2a2a;
}
.my-trips-empty {
  margin: 0;
  color: #666;
  line-height: 1.7;
}
.my-trips-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.my-trip-row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  margin-top: 8px;
}
.my-trip-item {
  flex: 1;
  width: auto;
  margin: 0;
  padding: 12px 14px;
  display: block;
  text-align: left;
  font-size: 16px;
  background-color: #f7fbf7;
  color: #2a2a2a;
  box-shadow: none;
}
.my-trip-item:hover {
  background-color: #e8f5e9;
}
.my-trip-date {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: #777;
}

/* 输入辅助：示例与快捷需求 */
.input-assist {
  margin-bottom: 14px;
}
.input-assist-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.input-assist-title {
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 700;
}
.example-fill-button {
  width: auto;
  margin: 0;
  padding: 8px 13px;
  border: 1px solid #2e7d32;
  border-radius: 999px;
  background: #fff;
  color: #2e7d32;
  box-shadow: none;
  font-size: 14px;
}
.example-fill-button:hover {
  background: #e8f5e9;
}
.quick-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.quick-option {
  width: auto;
  margin: 0;
  padding: 9px 13px;
  border: 1px solid #d8e6d9;
  border-radius: 999px;
  background: #f7fbf7;
  color: #2f5f33;
  box-shadow: none;
  font-size: 14px;
}
.quick-option:hover {
  background: #e8f5e9;
  border-color: #81c784;
}
.input-assist-note {
  margin: 9px 0 0;
  color: #777;
  font-size: 13px;
  line-height: 1.5;
}

/* 页面内轻量反馈 */
.feedback-wrap {
  margin: 28px auto 10px;
  text-align: center;
}
.feedback-toggle {
  background: #2196F3;
  width: auto;
  font-size: 16px;
  padding: 10px 18px;
  box-shadow: none;
}
.feedback-panel {
  max-width: 620px;
  margin: 12px auto 0;
  padding: 22px;
  text-align: left;
  background: #fff;
  border: 1px solid #dce8f2;
  border-radius: 14px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.06);
}
.feedback-panel[hidden] { display: none; }
.feedback-panel fieldset {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
}
.feedback-panel legend {
  margin-bottom: 10px;
  color: #2a2a2a;
  font-size: 16px;
  font-weight: bold;
}
.feedback-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 14px;
}
.feedback-options label {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  padding: 9px 10px;
  background: #f7fafc;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1.35;
}
.feedback-options input { margin-top: 3px; }
.feedback-comment {
  width: 100%;
  min-height: 88px;
  height: 88px;
  padding: 12px;
  font-size: 16px;
  resize: vertical;
}
.feedback-submit {
  margin: 18px auto 4px;
  width: auto;
  min-width: 150px;
}
.feedback-submit:disabled { opacity: 0.65; cursor: wait; }
.feedback-message {
  min-height: 24px;
  margin: 10px 0 0;
  text-align: center;
  font-size: 15px;
}
.feedback-message.success { color: #2e7d32; font-weight: bold; }
.feedback-message.error { color: #c62828; }
@media (max-width: 768px) {
  .input-assist-header {
    align-items: flex-start;
  }
  .input-assist-title {
    padding-top: 7px;
  }
  .example-fill-button,
  .quick-option {
    width: auto;
    font-size: 14px;
  }
  .feedback-panel { padding: 18px 14px; }
  .feedback-options { grid-template-columns: 1fr; }
  .feedback-toggle,
  .feedback-submit { width: auto; font-size: 16px; }
  .feedback-comment { font-size: 16px; }
}


/* Homepage presentation: keep itinerary/PDF styles and application logic intact. */
body { color:#243d35; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; background:#f6f8f7; }
.container { max-width:880px; padding:24px 20px; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 0 24px; }
.brand { font-size:23px; font-weight:800; color:#20704e; text-decoration:none; letter-spacing:-.5px; }
.site-nav { display:flex; gap:18px; font-size:14px; }
.site-nav a,.resource-section a { color:#20704e; text-underline-offset:4px; }
.site-nav a { text-decoration:none; }
.hero { text-align:center; padding:20px 0 24px; }
.eyebrow { color:#598171; font-size:12px; letter-spacing:2px; margin:0 0 12px; }
.hero h1 { font-size:clamp(28px,5vw,40px); line-height:1.3; letter-spacing:-1px; margin:0 0 14px; color:#203b31; }
.hero p:last-child { color:#687a72; line-height:1.8; margin:0; font-size:16px; }
.planner-panel { background:#fff; border:1px solid #e0e8e3; border-radius:20px; padding:26px; box-shadow:0 8px 30px rgba(30,70,50,.035); }
.quick-input-hint { background:#eff7f2; color:#476555; padding:14px 18px; font-size:14px; }
.quick-input-hint p { margin-bottom:4px; }
#inputText { font-size:16px; height:160px; min-height:140px; line-height:1.7; border-color:#d8e3dc; box-shadow:none; resize:vertical; }
#inputText:focus { outline:2px solid #74b294; outline-offset:2px; }
button { border-radius:10px; box-shadow:none; }
#generateBtn { background:#23734f; font-size:17px; width:100%; padding:16px; margin-bottom:0; }
#generateBtn:hover { background:#195d3f; }
#generateBtn:disabled { opacity:.65; cursor:wait; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid #23734f; outline-offset:4px; }
.my-trips { border:1px solid #e0e8e3; box-shadow:none; }
.resource-section { margin-top:44px; }
.resource-section h2 { font-size:25px; text-align:left; letter-spacing:0; margin:0 0 12px; color:#203b31; }
.resource-intro { color:#687a72; font-size:15px; line-height:1.9; margin:0 0 20px; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.resource-card { background:#fff; border:1px solid #e0e8e3; border-radius:14px; padding:20px; }
.resource-card .resource-label { color:#698376; font-size:12px; margin:0 0 10px; }
.resource-card h3 { font-size:18px; margin:0 0 10px; }
.resource-card p { color:#687a72; font-size:14px; line-height:1.8; margin:0; }
.resource-demo { display:inline-block; margin-top:18px; font-size:14px; font-weight:600; }
.agent-details { margin-top:22px; border-top:1px solid #dfe7e2; padding-top:20px; }
.agent-details summary { cursor:pointer; font-weight:600; font-size:15px; }
.agent-details p,.agent-details li { color:#687a72; font-size:14px; line-height:1.8; }
.agent-details ul { padding-left:20px; }
.agent-details code { overflow-wrap:anywhere; }
.page-footer { font-size:13px; border-top:1px solid #e0e8e3; padding-top:22px; }
@media (max-width:600px) {
 .container { padding:18px 16px; }
 .site-header { padding-bottom:16px; }
 .site-nav { gap:12px; font-size:13px; }
 .hero { padding:16px 0 22px; }
 .planner-panel { padding:18px; border-radius:16px; }
 .input-assist-header { flex-wrap:wrap; }
 .resource-grid { grid-template-columns:1fr; gap:10px; }
 .resource-card { padding:18px; }
 .resource-section { margin-top:32px; }
 .loading-road { white-space:normal; flex-wrap:wrap; }
 #roadTrack { min-width:0; }
}


[hidden] { display:none !important; }
#tripTitle { overflow-wrap:anywhere; font-size:26px; text-align:left; }
#output:empty { display:none; }

/* MengTrip shared navy and teal brand */
body { color:#142d41;background:#f1f5f9; }
.container { max-width:1100px; }
.brand,.site-nav a,.resource-section a,.hero h1,.resource-section h2 { color:#102d43; }
.hero { text-align:left;padding:18px 0 22px; }
.hero h1 { font-size:clamp(28px,5vw,42px); }
.eyebrow { color:#116e78;font-size:14px; }
#generateBtn { background:#116e78; }
#generateBtn:hover { background:#0b5962; }
.planner-panel,.my-trips,.resource-card { border-color:#dce7ee; }
.quick-input-hint,.quick-option { background:#e4f5f1;color:#11685f; }
.resource-card { border-top:3px solid #2dd4bf; }
.resource-card p,.resource-intro { font-size:16px; }
.resource-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:18px; }
.resource-actions a { padding:9px 12px;background:#e4f5f1;border-radius:8px;color:#11685f;text-decoration:none;font-size:14px;font-weight:650; }
.resource-actions a:hover { background:#ccebe5; }
@media(max-width:700px) { .site-header{flex-wrap:wrap}.site-nav{flex-wrap:wrap}.resource-grid{grid-template-columns:1fr}.hero{padding-top:8px}.container{padding:18px 16px} }
