@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans','Noto Sans SC',system-ui,sans-serif;color:#37463b;background:#f8f8f4;font-synthesis:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;-webkit-tap-highlight-color:transparent}button,input{font:inherit}[hidden]{display:none!important}.layout{max-width:1100px;margin:0 auto;padding:30px 42px;min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:12px}.logo{font-size:30px;color:#5f8a68}.header strong{font-size:17px;letter-spacing:2px;display:block}.header span{display:block;color:#a1aaa1;font-size:11px;letter-spacing:1px;margin-top:1px}.hero{margin:92px 0 55px;background:#eef3e9;border-radius:24px;padding:76px 68px 66px;position:relative;overflow:hidden}.hero:after{content:'✳';font-size:310px;color:#e3ebde;position:absolute;right:-60px;top:-105px;line-height:1;pointer-events:none}.hero>*{position:relative;z-index:1}.eyebrow{color:#739379;letter-spacing:2px;font-size:12px}h1{font-weight:600;letter-spacing:1px;font-size:clamp(34px,4.4vw,56px);margin:22px 0;color:#2d4935}h1 em{font-style:normal;color:#6d9a78}.hero>p{font-size:14px;color:#829087;line-height:1.8}.search{max-width:690px;margin-top:46px}.search label{display:block;font-size:12px;font-weight:600;margin-bottom:12px;color:#526b57}.input-row{display:flex;align-items:center;gap:12px;background:white;padding:8px 8px 8px 20px;border-radius:13px;box-shadow:0 8px 30px #556e4b15;border:1px solid #e6ebe4}.input-row>span{font-size:25px;color:#8ba891}.input-row input{border:0;outline:0;min-width:0;flex:1;padding:12px 0;color:#374b3a;font-size:14px;background:transparent}.input-row input::placeholder{color:#aeb9af}.input-row:focus-within{border-color:#93b798}.input-row button{background:#577e61;color:#fff;border:0;border-radius:9px;padding:13px 21px;white-space:nowrap;cursor:pointer;transition:.2s}@media(hover:hover){.input-row button:hover{background:#42684d}}.input-row button:active{background:#42684d}.input-row button:disabled{opacity:.55;cursor:wait}.hint{font-size:11px!important;margin:13px 0 0!important;color:#9ca99d!important}.result-heading .tag{display:inline-block;background:#e9f0e7;color:#658b6d;border-radius:20px;padding:6px 13px;font-size:11px;letter-spacing:1px}.result-heading h2{font-size:30px;margin:17px 0 5px}.result-heading p{font-size:12px;color:#9ba69d}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin-top:24px}.result-card{background:#fff;border:1px solid #e8eee7;border-radius:16px;padding:28px 30px;min-height:215px;box-shadow:0 8px 35px #4863420b}.card-top{display:flex;justify-content:space-between;align-items:center;color:#adb8ae;font-size:11px;letter-spacing:1px}.card-icon{font-size:30px;color:#d6ae6a}.attraction-card .card-icon{color:#7da488}.result-card h3{margin:20px 0 12px;font-size:18px}.result-card p{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;color:#68776b;margin:0}.result-card p.failed{color:#b17663}.weather-dl{margin:0;display:grid;gap:10px}.weather-row{display:flex;align-items:baseline;gap:8px}.weather-row dt{font-size:12px;color:#9ba69d;white-space:nowrap;flex-shrink:0}.weather-row dd{margin:0;font-size:15px;font-weight:600;color:#374b3a;overflow-wrap:anywhere}.weather-row dd.failed{color:#b17663}.error{border-radius:10px;padding:16px 20px;background:#fff0e9;color:#aa6859;margin-bottom:24px}.layout footer{margin-top:auto;text-align:center;padding:55px 0 12px;color:#adb7ad;font-size:11px;letter-spacing:1px}

/* ===== 响应式适配 ===== */
@supports(min-height:100dvh){.layout{min-height:100dvh}}

/* 平板 / 小屏笔记本 */
@media(max-width:960px){
  .layout{padding:26px 32px}
  .hero{margin:56px 0 44px;padding:60px 48px 54px}
  .hero:after{font-size:260px;right:-50px;top:-85px}
}

/* 手机 */
@media(max-width:680px){
  .layout{
    padding:16px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
    padding-top:max(16px,env(safe-area-inset-top));
  }
  .logo{font-size:26px}
  .header strong{font-size:16px}
  .hero{margin:24px 0 32px;padding:40px 22px 34px;border-radius:20px}
  .hero:after{font-size:190px;right:-50px;top:-50px}
  .eyebrow{font-size:11px;letter-spacing:1.5px}
  h1{font-size:clamp(28px,8.2vw,38px);line-height:1.3;margin:16px 0 14px;letter-spacing:.5px}
  h1 em{display:block}
  .hero>p{font-size:13px;line-height:1.7;margin:0}
  .search{margin-top:28px}
  .search label{margin-bottom:10px}
  .input-row{gap:6px;padding:6px 6px 6px 14px;border-radius:12px}
  .input-row>span{font-size:22px}
  /* iOS 输入框字号低于 16px 时聚焦会自动放大页面 */
  .input-row input{font-size:16px;padding:10px 0}
  .input-row button{padding:0 16px;min-height:44px;font-size:14px}
  .hint{font-size:12px!important;line-height:1.6}
  #version-status{display:block;margin-top:2px}
  .result-heading h2{font-size:24px;margin:14px 0 4px}
  .result-grid{grid-template-columns:1fr;gap:14px;margin-top:18px}
  .result-card{min-height:0;padding:22px 20px;border-radius:14px}
  .card-icon{font-size:26px}
  .result-card h3{margin:14px 0 10px;font-size:17px}
  .result-card p{font-size:14.5px;line-height:1.85}
  .weather-row dd{font-size:16px}
  .error{padding:14px 16px;font-size:14px}
  .layout footer{padding-top:36px}
}

/* 小屏手机：按钮换到输入框下方，整行可点 */
@media(max-width:400px){
  .hero{padding:34px 18px 30px}
  .input-row{flex-wrap:wrap;padding:6px 6px 6px 12px}
  .input-row input{flex:1 1 0}
  .input-row button{flex:1 1 100%}
}

/* 触屏设备（含横屏手机、平板）：输入框至少 16px，避免 iOS 聚焦放大 */
@media(pointer:coarse){.input-row input{font-size:16px}}

/* 手机横屏：高度很矮，压缩纵向留白 */
@media(max-height:500px) and (orientation:landscape){
  .hero{margin:16px 0 24px;padding:28px 32px 26px}
  .hero:after{font-size:160px;top:-40px}
  h1{font-size:30px;margin:10px 0}
  h1 em{display:inline}
  .search{margin-top:18px}
  .result-grid{grid-template-columns:1fr 1fr}
}
