/* 关西 8 天行程页 · 视觉方向 ④ 紀伊路
   规则：只用系统字体（离线可用）、零外部请求、手机优先 */

:root{
  color-scheme:light;
  --paper:#fbfaf7;
  --line:#e3e6e6;
  --ink:#101a24;
  --ink2:#48586a;
  --ink3:#8595a6;
  --accent:#1f4e79;
  --serif:"Songti SC","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:#e8e8e6}
body{
  -webkit-font-smoothing:antialiased;
  font-family:var(--sans);
  padding-bottom:env(safe-area-inset-bottom);
}
h1,h2,h3,p,ol,ul{margin:0}

.app{
  max-width:460px;margin:0 auto;min-height:100vh;
  background:var(--paper);color:var(--ink);
}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------------- 倒计时 ---------------- */
.cd-hero{position:relative;padding:22px 20px 20px;color:#fff;overflow:hidden}
.cd-hero .bg{position:absolute;inset:0}
/* 背景 SVG 必须撑满容器：它只有 viewBox 没有 width，默认按 400px 渲染，
   在 460px 桌面档会右侧露出纸色 */
.cd-hero .bg svg{display:block;width:100%;height:100%}
.cd-hero .in{position:relative;z-index:2}
.cd-lbl{font-size:11px;letter-spacing:.16em;font-weight:600;color:rgba(255,255,255,.82)}
.cd-days{font-family:var(--mono);font-size:56px;font-weight:700;line-height:.95;
  letter-spacing:-.03em;margin-top:10px}
.cd-days small{font-size:19px;font-weight:600;margin-left:5px;letter-spacing:0}
.cd-hms{font-family:var(--mono);font-size:16px;font-weight:600;margin-top:8px;
  color:rgba(255,255,255,.9);letter-spacing:.04em}
.cd-target{font-size:12.5px;margin-top:11px;line-height:1.55;color:rgba(255,255,255,.86)}
.cd-target b{color:#fff;font-weight:700}

/* ---------------- NOW 卡片 ---------------- */
.now{border:1px solid var(--line);background:#fff;padding:15px 18px;
  border-left:4px solid var(--dayc,var(--accent))}
.now .lb{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--ink3)}
.now .ti{font-size:17px;font-weight:600;line-height:1.45;margin-top:7px;font-family:var(--serif)}
.now .mt{font-size:12.5px;color:var(--ink2);margin-top:5px;line-height:1.6}
.now .row{margin-top:9px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.now .cd{font-family:var(--mono);font-size:12px;font-weight:700}

/* ---------------- 区块标题 ---------------- */
.sh{display:flex;justify-content:space-between;align-items:baseline;padding:20px 20px 9px}
.sh .t{font-size:10.5px;letter-spacing:.18em;font-weight:700;color:var(--ink3)}
.sh .r{font-size:11px;color:var(--ink3)}

/* ---------------- 吸顶标签导航 ---------------- */
.tabnav{position:sticky;top:0;z-index:30;background:rgba(251,250,247,.985);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);padding:8px 20px 7px}
.tabs{display:flex;gap:3px}
.tab{flex:1 1 0;min-width:0;padding:7px 0;border:1px solid var(--line);border-radius:3px;
  background:#fff;font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--ink2);
  cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;
  font-variant-numeric:tabular-nums}
.tab.ov{font-family:var(--sans);font-weight:700}
.tab.on{background:var(--ink);border-color:var(--ink);color:#fff}
.tab.on[data-tab]:not(.ov){background:var(--dayc,var(--accent));border-color:var(--dayc,var(--accent))}
.tab.today:not(.on){border-color:#2f8f66;color:#1f7a52;background:#f2f9f5}

/* ---------------- 路线地图 ---------------- */
.route{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:8px 0 4px}
.route svg{display:block;width:100%;height:auto}
.route .cap{padding:6px 20px;font-size:10.5px;color:var(--ink3);line-height:1.6}

/* ---------------- 每日概要 ---------------- */
.ov{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ovrow{display:flex;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line);
  align-items:flex-start;background:none;border-left:0;border-right:0;border-top:0;
  width:100%;text-align:left;font-family:inherit;cursor:pointer}
.ovrow:last-child{border-bottom:0}
.ovrow .dn{flex:none;width:30px;font-family:var(--mono);font-size:11.5px;font-weight:700;
  color:var(--dayc,var(--accent));padding-top:2px}
.ovrow .dt{flex:none;width:44px;padding-top:1px}
.ovrow .dt b{display:block;font-family:var(--mono);font-size:13.5px;font-weight:700;color:var(--ink)}
.ovrow .dt span{display:block;font-size:10px;color:var(--ink3)}
.ovrow .bd{flex:1;min-width:0}
.ovrow .pl{font-size:14.5px;font-weight:600;line-height:1.4}
.ovrow .ky{font-size:12px;color:var(--ink2);margin-top:3px;line-height:1.5}
.ovrow .ar{flex:none;color:#c6cfd6;font-size:15px;padding-top:3px}
.ovrow.today{background:#f4f6f7}
.ovrow .tflag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.08em;
  color:#fff;background:var(--dayc,var(--accent));border-radius:3px;padding:1px 5px;
  margin-left:6px;vertical-align:1.5px}

/* ---------------- 全程信息折叠面板 ---------------- */
.acc{background:#fff;border-top:1px solid var(--line)}
.acc:last-of-type{border-bottom:1px solid var(--line)}
.acc-h{width:100%;display:flex;align-items:center;gap:9px;padding:15px 20px;background:none;
  border:0;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);
  cursor:pointer;text-align:left}
.acc-h .n{font-size:11px;color:var(--ink3);font-weight:400;margin-left:auto}
.acc-h::after{content:"\203A";color:var(--ink3);font-size:15px;transition:transform .18s;margin-left:6px}
.acc.open .acc-h::after{transform:rotate(90deg)}
.acc-b{padding:0 20px 16px}
.acc-b[hidden]{display:none}

/* ---------------- 当天明细 ---------------- */
.hero{position:relative}
.hero svg{display:block;width:100%}
.hero .ovl{position:absolute;left:0;right:0;bottom:0;padding:34px 20px 14px;
  background:linear-gradient(to top,rgba(8,16,24,.94) 0%,rgba(8,16,24,.86) 42%,
  rgba(8,16,24,.45) 72%,transparent 100%)}
.hero .dnum{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;
  color:rgba(255,255,255,.8);font-weight:600}
.hero h1{margin:5px 0 0;font-family:var(--serif);font-size:26px;font-weight:500;color:#fff;
  letter-spacing:.03em;line-height:1.2}
.hero .meta{margin-top:6px;font-size:11.5px;color:rgba(255,255,255,.82);letter-spacing:.04em}

.dayhead{padding:18px 20px 6px}
.dayhead .goal{font-size:13px;color:var(--ink2);line-height:1.7}
.base{margin:12px 20px 0;padding:9px 12px;font-size:11.5px;color:var(--ink2);
  border-left:2px solid var(--dayc,var(--accent));background:#f4f5f3;letter-spacing:.02em}
.timeline{padding:8px 20px 18px}
.item{display:flex;position:relative;padding:13px 0;gap:14px}
.item .tm{flex:none;width:50px;font-size:12.5px;font-weight:600;font-family:var(--mono);
  color:var(--ink2);padding-top:2px;text-align:right}
.item .bd{flex:1;min-width:0;position:relative;border-left:1px solid var(--line);padding-left:15px}
.item .bd::before{content:"";position:absolute;left:-4.5px;top:8px;width:8px;height:8px;
  border-radius:50%;background:var(--paper);border:2px solid var(--ink3)}
.item.t-train .bd::before,.item.t-flight .bd::before{background:var(--dayc,var(--accent));
  border-color:var(--dayc,var(--accent))}
.item.t-meal .bd::before,.item.t-hotel .bd::before{background:var(--wc,#c98a3c);
  border-color:var(--wc,#c98a3c)}
.item.next .bd{background:#fff8ec;border-left-color:#e8c98a;margin:-9px -10px -9px 0;
  padding:9px 10px 9px 15px;border-radius:0 3px 3px 0}
.item .ti{font-size:15px;font-weight:600;line-height:1.5}
.item .dt{font-size:12.5px;color:var(--ink2);margin-top:4px;line-height:1.7}
.tag{display:inline-block;font-size:10px;padding:1px 7px;border-radius:999px;background:#eceff1;
  color:var(--ink2);font-weight:500;letter-spacing:.05em;margin-right:5px;vertical-align:1px}
.alt{font-size:11.5px;color:var(--ink3);margin-top:6px;line-height:1.7}
.notes{margin:18px 0 0;padding:14px 16px;background:#fff;border:1px solid var(--line)}
.notes b{display:block;font-size:10.5px;letter-spacing:.14em;color:#c98a3c;margin-bottom:6px;font-weight:700}
.notes ul{padding-left:15px;font-size:12.5px;line-height:1.75;color:var(--ink2)}

/* 导航按钮（Google / Apple） */
.navrow{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}
.mapbtn{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:5px 11px;
  border-radius:999px;color:var(--ink2);background:#fff;border:1px solid var(--line);
  text-decoration:none;font-weight:600}
.mapbtn.apple{color:var(--ink3)}


/* 划位清单：窄屏下每段单独成块，避免时刻被挤断行 */
.rz{border-top:1px solid var(--line)}
.rz-row{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.rz-d{flex:none;width:38px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink)}
.rz-m{flex:1;min-width:0}
.rz-r{font-size:12.5px;color:var(--ink2);line-height:1.5}
.rz-t{font-size:12.5px;font-weight:600;color:var(--ink);margin-top:2px}
.rz-c{flex:none;font-size:11.5px;color:var(--ink3);text-align:right;max-width:104px;line-height:1.45}

/* 住宿：两列一行 */
.lg{width:100%;border-collapse:collapse;font-size:12.5px}
.lg td{padding:9px 0;border-bottom:1px solid var(--line)}
.lg td:last-child{text-align:right}

/* ---------------- 表格 ---------------- */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--ink)}
td{color:var(--ink2)}
td .mono{color:var(--ink)}

.foot{padding:22px 20px 30px;font-size:11px;color:var(--ink3);line-height:1.7;
  border-top:1px solid var(--line);background:#fff}
.spacer{height:26px}

/* 尊重系统的减少动态偏好 */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
