/* =====================================================================
   看見命運 站台樣式（共用）
   顏色與字級集中在 :root，想換風格只要改這裡
   ===================================================================== */
:root{
  --ink:#1d1b2f; --ink2:#4a4766; --muted:#7c7996;
  --night:#14122a; --night2:#221f45; --gold:#c9a24a; --gold2:#e8cf8a;
  --paper:#faf7f0; --card:#ffffff; --line:#e7e1d2;
  --good:#2f8f5b; --warn:#c0532b; --amber:#d99a1f; --accent:#6c4fd8;
  --lamp-green:#2f8f5b; --lamp-yellow:#d99a1f; --lamp-red:#c0532b;
  --lamp-green-bg:#e7f5ed; --lamp-yellow-bg:#fff4dc; --lamp-red-bg:#fdebe5;
  --r:14px; --shadow:0 6px 24px rgba(20,18,42,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--paper);line-height:1.75;font-size:16px}
h1,h2,h3,.serif{font-family:"Noto Serif TC","Songti TC","PMingLiU",serif;letter-spacing:.02em}
a{color:var(--accent)}
img,svg{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:820px}
.hide{display:none!important}

/* ---------- 頂部列 ---------- */
.top{position:sticky;top:0;z-index:30;background:rgba(20,18,42,.94);backdrop-filter:blur(8px);color:#fff}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;color:var(--gold2);text-decoration:none;white-space:nowrap}
.brand svg{width:30px;height:30px;flex:0 0 auto}
.brand small{font-weight:400;font-size:12px;color:#b9b4dc;margin-left:2px}
.nav{display:flex;align-items:center;gap:2px}
.nav a{color:#ddd8f5;text-decoration:none;padding:6px 12px;border-radius:999px;font-size:15px}
.nav a:hover{color:var(--gold2)}
.nav a.on{background:rgba(232,207,138,.16);color:var(--gold2);font-weight:600}
.tabbar{display:none}
@media(max-width:760px){
  .nav{display:none}
  .brand small{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(20,18,42,.97);border-top:1px solid rgba(232,207,138,.25);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;color:#aaa5cf;text-decoration:none;font-size:11px;padding:4px 0;border-radius:10px}
  .tabbar a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .tabbar a.on{color:var(--gold2)}
  body{padding-bottom:64px}
}

/* ---------- 頁首橫幅 ---------- */
.page-head{background:radial-gradient(ellipse at 75% 0%,#3b3477 0%,var(--night2) 50%,var(--night) 100%);color:#fff;padding:34px 0 30px;position:relative;overflow:hidden}
.page-head h1{margin:0 0 6px;font-size:34px;color:var(--gold2);line-height:1.3}
.page-head p{margin:0;color:#d6d2ee;max-width:640px}
.page-head .crumb{font-size:13px;color:#b9b4dc;margin-bottom:6px}
.page-head .crumb a{color:#cfc9f3}
@media(max-width:640px){.page-head h1{font-size:27px}}

/* ---------- 版面 ---------- */
section{padding:34px 0}
.sec-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.sec-title h2{margin:0;font-size:26px}
.sec-title .hint{color:var(--muted);font-size:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media(max-width:860px){.g3,.g4{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.note{font-size:12.5px;color:var(--muted)}
.muted{color:var(--muted)}
.row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.row>label,.field{flex:1;min-width:90px;display:flex;flex-direction:column;font-size:13px;color:var(--ink2);gap:4px}
input,select,textarea{font:inherit;font-size:15px;padding:9px 10px;border:1px solid #d7d1c1;border-radius:10px;background:#fff;color:var(--ink);max-width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.seg{display:inline-flex;background:#f1ece0;border-radius:10px;padding:3px;gap:3px;flex-wrap:wrap}
.seg button{border:0;background:transparent;padding:6px 14px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink2)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12);font-weight:600}
.check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:11px 18px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.3}
.btn-gold{background:linear-gradient(135deg,#d8b562,#b8892f);color:#1d1b2f;width:100%}
.btn-gold.inline{width:auto}
.btn-gold:hover{filter:brightness(1.06)}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold)}
.btn-dark{background:var(--night2);color:var(--gold2)}
.btn-sm{padding:7px 12px;font-size:13px}
.err{color:var(--warn);font-size:13px;min-height:18px;margin-top:6px}
.privacy{font-size:12px;color:var(--muted);margin-top:10px;display:flex;gap:6px;align-items:flex-start}
.form-card{background:#fff;color:var(--ink);border-radius:18px;padding:24px;box-shadow:0 20px 50px rgba(0,0,0,.18);border:1px solid var(--line)}
.form-card h2{margin:0 0 4px;font-size:22px}.form-card .sub{color:var(--muted);font-size:13px;margin-bottom:14px}
.bf .bf-top{align-items:center;justify-content:space-between}
.bf h2{margin:0 0 4px;font-size:21px}.bf .sub{color:var(--muted);font-size:13px;margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.pill{display:inline-block;border-radius:999px;padding:2px 11px;font-size:13px;background:#f4efe3;color:#6b5420}
.pill.btnlike{cursor:pointer;border:1px solid transparent;font:inherit;font-size:13px}
.pill.btnlike.on{background:var(--night2);color:var(--gold2)}
.empty{color:var(--muted);font-size:14px;padding:6px 0}

/* ---------- 燈號 ---------- */
.lamp{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 11px 2px 8px;font-size:13px;font-weight:700}
.lamp i{width:10px;height:10px;border-radius:50%;display:inline-block}
.lamp.green{background:var(--lamp-green-bg);color:var(--lamp-green)}.lamp.green i{background:var(--lamp-green)}
.lamp.yellow{background:var(--lamp-yellow-bg);color:#9a6a05}.lamp.yellow i{background:var(--lamp-yellow)}
.lamp.red{background:var(--lamp-red-bg);color:var(--lamp-red)}.lamp.red i{background:var(--lamp-red)}
.lamp.none{background:#eee;color:#777}.lamp.none i{background:#bbb}
.lamps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:860px){.lamps{grid-template-columns:1fr}}
.lamp-card{position:relative;padding:18px 18px 16px;border-top:5px solid var(--line);display:flex;flex-direction:column;gap:8px}
.lamp-card.green{border-top-color:var(--lamp-green)}.lamp-card.yellow{border-top-color:var(--lamp-yellow)}.lamp-card.red{border-top-color:var(--lamp-red)}
.lamp-card .ax{display:flex;align-items:center;gap:12px}
.lamp-card .glyph{width:46px;height:46px;border-radius:14px;background:var(--night2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif;font-size:26px;flex:0 0 auto}
.lamp-card h3{margin:0;font-size:18px;line-height:1.2}.lamp-card .sub{font-size:12.5px;color:var(--muted)}
.lamp-card .score{margin-left:auto;text-align:right}
.lamp-card .score b{display:block;font-family:"Noto Serif TC",serif;font-size:30px;line-height:1}
.lamp-card .score.green b{color:var(--lamp-green)}.lamp-card .score.yellow b{color:#b07c10}.lamp-card .score.red b{color:var(--lamp-red)}
.lamp-card .score small{font-size:11px;color:var(--muted)}
.lamp-card p{margin:0;font-size:14.5px}
.meter{height:6px;background:#f0ebdf;border-radius:99px;overflow:hidden}
.meter i{display:block;height:100%;border-radius:99px;background:var(--lamp-yellow)}
.meter.green i{background:var(--lamp-green)}.meter.red i{background:var(--lamp-red)}
details.why{font-size:13.5px;margin-top:2px}
details.why summary{cursor:pointer;color:var(--accent);font-weight:600;list-style:none}
details.why summary::-webkit-details-marker{display:none}
details.why summary:before{content:"＋ ";}
details.why[open] summary:before{content:"－ ";}
.why ul{margin:6px 0 0;padding-left:0;list-style:none}
.why li{display:flex;gap:6px;margin:5px 0;line-height:1.6}
.why li:before{content:"•";flex:0 0 auto;color:var(--muted)}
.why li.pos:before{content:"＋";color:var(--lamp-green);font-weight:700}
.why li.neg:before{content:"－";color:var(--lamp-red);font-weight:700}
.why li.note:before{content:"ⓘ";color:var(--muted)}
.consensus{display:flex;gap:14px;align-items:flex-start;border-radius:var(--r);padding:16px 18px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.consensus.green{background:linear-gradient(90deg,var(--lamp-green-bg),#fff 70%)}.consensus.yellow{background:linear-gradient(90deg,var(--lamp-yellow-bg),#fff 70%)}.consensus.red{background:linear-gradient(90deg,var(--lamp-red-bg),#fff 70%)}
.consensus .lv{flex:0 0 auto;font-family:"Noto Serif TC",serif;font-weight:700;font-size:15px;border-radius:10px;padding:4px 12px;background:var(--night2);color:var(--gold2);white-space:nowrap}
.consensus p{margin:0;font-size:15.5px}
.dots{display:inline-flex;gap:3px;vertical-align:middle}
.dots i{width:9px;height:9px;border-radius:50%;display:inline-block;background:#d8d3c4}
.dots i.green{background:var(--lamp-green)}.dots i.yellow{background:var(--lamp-yellow)}.dots i.red{background:var(--lamp-red)}

/* ---------- 今日首頁 ---------- */
.today-hero{background:radial-gradient(ellipse at 80% 0%,#3b3477 0%,var(--night2) 48%,var(--night) 100%);color:#fff;position:relative;overflow:hidden}
.today-hero canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.65}
.today-hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:34px;padding-top:40px;padding-bottom:46px;align-items:center}
@media(max-width:860px){.today-hero .wrap{grid-template-columns:1fr;gap:22px;padding-top:26px;padding-bottom:30px}}
.date-big{font-family:"Noto Serif TC",serif;font-size:54px;line-height:1.05;color:var(--gold2);margin:6px 0}
.date-big small{font-size:20px;color:#d6d2ee;margin-left:8px;font-weight:400}
.today-hero .lead{font-size:17px;color:#e3e0f6;margin:6px 0 14px;max-width:520px}
.today-hero .badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{border:1px solid rgba(232,207,138,.4);color:var(--gold2);padding:3px 12px;border-radius:999px;font-size:13px}
.headline{font-family:"Noto Serif TC",serif;font-size:24px;line-height:1.5;color:#fff;margin:10px 0 0}
@media(max-width:640px){.date-big{font-size:42px}.headline{font-size:20px}}
.subject-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.subject-tiles{grid-template-columns:1fr}}
.tile{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;padding:20px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.tile:hover{transform:translateY(-3px);border-color:var(--gold)}
.tile .glyph{width:48px;height:48px;border-radius:14px;background:var(--night2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif;font-size:26px}
.tile h3{margin:4px 0 0;font-size:20px}.tile p{margin:0;font-size:14.5px;color:var(--ink2)}.tile .go{margin-top:auto;color:var(--accent);font-weight:600;font-size:14px}
.ask-box{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.ev-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font:inherit;font-size:14px;color:var(--ink);text-decoration:none;text-align:center;line-height:1.3}
.ev-btn:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.ev-btn.on{border-color:var(--night2);background:var(--night2);color:var(--gold2)}
.ev-btn .ic{font-size:26px;line-height:1}
.mini-list{display:flex;flex-direction:column;gap:8px}
.mini-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:inherit}
.mini-row:hover{border-color:var(--gold)}
.mini-row .dt{font-family:"Noto Serif TC",serif;font-weight:700;min-width:84px}
.mini-row .sp{flex:1;color:var(--ink2);font-size:14px}

/* ---------- 農民曆 ---------- */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cal-head h2{margin:0;font-size:24px}
.cal-nav{display:flex;gap:8px;flex-wrap:wrap}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal .wd{text-align:center;font-size:13px;color:var(--muted);padding:4px 0}
.cal .wd:first-child,.cal .wd:last-child{color:var(--lamp-red)}
.cal .cell{min-height:86px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 6px;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:1px;font-size:12px;text-align:left;font-family:inherit;color:var(--ink)}
.cal .cell:hover{border-color:var(--gold)}
.cal .cell.out{background:transparent;border-color:transparent;cursor:default}
.cal .cell.today{box-shadow:inset 0 0 0 2px var(--gold)}
.cal .cell.sel{background:#f2edff;border-color:var(--accent)}
.cal .cell .n{font-family:"Noto Serif TC",serif;font-size:18px;font-weight:700;line-height:1.1}
.cal .cell .lu{color:var(--muted);font-size:11.5px}
.cal .cell .term{color:var(--accent);font-size:11.5px;font-weight:600}
.cal .cell .tg{margin-top:auto;display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ink2)}
.cal .cell .lampdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.cal .cell .lampdot.green{background:var(--lamp-green)}.cal .cell .lampdot.yellow{background:var(--lamp-yellow)}.cal .cell .lampdot.red{background:var(--lamp-red)}
@media(max-width:640px){.cal{gap:3px}.cal .cell{min-height:62px;padding:3px 4px}.cal .cell .n{font-size:15px}.cal .cell .lu,.cal .cell .tg span{display:none}.cal .cell .term{font-size:10px}}
.day-detail h2{margin:0 0 2px;font-size:26px}
.day-detail .big{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--ink2);font-size:14.5px;margin:6px 0 12px}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0}
.kv div{background:#f8f4ea;border-radius:12px;padding:10px 12px}
.kv small{display:block;color:var(--muted);font-size:12px}.kv b{font-size:16px;font-family:"Noto Serif TC",serif}
.yi-ji{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
@media(max-width:620px){.yi-ji{grid-template-columns:1fr}}
.yi-ji>div{border-radius:12px;padding:12px 14px}
.yi-ji .yi{background:var(--lamp-green-bg)}.yi-ji .ji{background:var(--lamp-red-bg)}
.yi-ji h4{margin:0 0 6px;font-size:16px;font-family:"Noto Serif TC",serif}
.yi-ji .yi h4{color:var(--lamp-green)}.yi-ji .ji h4{color:var(--lamp-red)}
.hours{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0}
@media(max-width:760px){.hours{grid-template-columns:repeat(3,1fr)}}
.hours div{border:1px solid var(--line);border-radius:10px;padding:6px 6px;text-align:center;font-size:12px;background:#fff}
.hours div b{display:block;font-family:"Noto Serif TC",serif;font-size:15px}
.hours div.y{background:var(--lamp-green-bg);border-color:#bfe3cd}.hours div.k{background:#f6f3f7;color:#7a7488}.hours div.c{background:var(--lamp-red-bg);border-color:#f0c4b6}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.tag{font-size:12.5px;border-radius:6px;padding:1px 9px;font-weight:600}
.tag.g{background:var(--lamp-green-bg);color:var(--lamp-green)}.tag.b{background:var(--lamp-red-bg);color:var(--lamp-red)}.tag.n{background:#f1ece0;color:#6b5420}

/* ---------- 擇日 ---------- */
.steps{counter-reset:s;display:flex;flex-direction:column;gap:18px}
.step{position:relative;padding-left:46px}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--night2);color:var(--gold2);font-family:"Noto Serif TC",serif;font-weight:700;display:flex;align-items:center;justify-content:center}
.step h3{margin:2px 0 8px;font-size:18px}
.res-item{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.res-item>summary,.res-item .res-sum{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;list-style:none}
.res-item>summary::-webkit-details-marker{display:none}
.res-item .rk{width:34px;height:34px;border-radius:50%;background:var(--night2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif;font-weight:700;flex:0 0 auto}
.res-item .dtx{font-family:"Noto Serif TC",serif;font-size:19px;font-weight:700;line-height:1.3}
.res-item .dtx small{display:block;font-size:12.5px;color:var(--muted);font-weight:400;font-family:"Noto Sans TC",sans-serif}
.res-item .mid{flex:1;min-width:0}
.res-item .lv{font-size:12.5px;color:var(--ink2)}
.res-item .body{border-top:1px dashed var(--line);padding:14px 16px}
.res-item .lamps{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.res-item .lamps{grid-template-columns:1fr}.res-item>summary{flex-wrap:wrap}}
.mini-axis{display:flex;gap:8px;align-items:center;font-size:12.5px;flex-wrap:wrap}
.mini-axis span{display:inline-flex;align-items:center;gap:4px}

/* ---------- 星座 ---------- */
.sign-hero{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.sign-glyph{width:110px;height:110px;border-radius:28px;background:linear-gradient(145deg,var(--night2),#3b3477);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:64px;line-height:1;box-shadow:var(--shadow)}
@media(max-width:560px){.sign-hero{grid-template-columns:1fr}.sign-glyph{width:84px;height:84px;font-size:48px}}
.sign-hero h2{margin:0;font-size:34px}.sign-hero .tg{color:var(--accent);font-weight:600;margin:2px 0 8px}
.sign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}
.sign-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;cursor:pointer;font:inherit}
.sign-chip:hover,.sign-chip.on{border-color:var(--gold);box-shadow:var(--shadow)}
.sign-chip .s{font-size:30px;line-height:1.1}.sign-chip b{font-size:15px}.sign-chip small{font-size:11.5px;color:var(--muted)}
.planet-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f0ebdf}
.planet-row:last-child{border:0}
.planet-row .pl{flex:0 0 96px}.planet-row .pl b{display:block;font-size:15px}.planet-row .pl small{color:var(--muted);font-size:12px}
.planet-row .sg{font-weight:700;color:var(--night2)}
.aspect-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.aspect-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 14px;font:inherit;font-size:14px;cursor:pointer}
.aspect-tabs button.on{background:var(--night2);color:var(--gold2);border-color:var(--night2)}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.week div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 4px;text-align:center;font-size:12px}
.week div b{display:block;font-family:"Noto Serif TC",serif;font-size:16px}
.week div.t{box-shadow:inset 0 0 0 2px var(--gold)}
@media(max-width:560px){.week{grid-template-columns:repeat(4,1fr)}}

/* ---------- 紫微流運 ---------- */
.flow-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.flow-months .m{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px}
.flow-months .m b{font-family:"Noto Serif TC",serif;font-size:17px;display:flex;justify-content:space-between;align-items:center}
.flow-months .m.now{box-shadow:inset 0 0 0 2px var(--gold)}
.line-pt{display:flex;gap:8px;margin:6px 0;font-size:14.5px}
.line-pt .tg{flex:0 0 auto;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px;margin-top:4px}
.line-pt .tg.good{background:#e6f4ec;color:#2f8f5b}.line-pt .tg.warn{background:#fff1e0;color:#b9661b}.line-pt .tg.focus{background:#ece8ff;color:#5a40c8}

/* ---------- 我的 / 清單 ---------- */
.saved-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.saved-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;cursor:pointer}
.saved-item.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,162,74,.35)}
.saved-item b{display:block}.saved-item small{color:var(--muted);display:block;line-height:1.5}
.icon-btn{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:18px;padding:4px 8px;border-radius:8px}
.icon-btn:hover{background:#f4efe3;color:var(--warn)}

/* ---------- 廣告版位 ---------- */
.ad-slot{margin:22px auto;text-align:center;min-height:0}
.ad-slot.preview{border:2px dashed #cfc7ad;border-radius:12px;color:#a49c82;padding:28px 10px;font-size:13px;background:rgba(255,255,255,.5)}

/* ---------- 內容文章 ---------- */
.prose h2{font-size:24px;margin:28px 0 8px}.prose h3{font-size:19px;margin:20px 0 6px}
.prose p,.prose li{font-size:15.5px;color:#2b2940}.prose ul{padding-left:20px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:8px 0}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:8px 0 0;color:var(--ink2);font-size:14.5px}
table.simple{border-collapse:collapse;width:100%;font-size:14px;background:#fff;border-radius:12px;overflow:hidden}
table.simple th,table.simple td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left}
table.simple th{background:#f4efe3}
.table-wrap{overflow-x:auto}

/* ---------- Modal / Toast / Footer ---------- */
.modal{position:fixed;inset:0;background:rgba(10,8,25,.55);display:none;align-items:center;justify-content:center;z-index:60;padding:16px}
.modal.open{display:flex}
.modal .box{background:#fff;border-radius:18px;max-width:560px;width:100%;max-height:86vh;overflow:auto;padding:24px;position:relative}
.modal .x{position:absolute;top:10px;right:12px;font-size:22px;border:0;background:none;cursor:pointer;color:var(--muted)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(90px);background:var(--night2);color:var(--gold2);padding:10px 20px;border-radius:999px;box-shadow:var(--shadow);transition:transform .3s;z-index:70;font-size:14px;max-width:90vw}
.toast.show{transform:translateX(-50%) translateY(0)}
@media(max-width:760px){.toast{bottom:78px}}
footer.site-foot{background:var(--night);color:#a9a4c9;font-size:13px;padding:30px 0 26px;margin-top:20px}
footer.site-foot b{color:var(--gold2)}
footer.site-foot a{color:#cfc9f3}
footer.site-foot .links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px}
footer.site-foot p{margin:6px 0}

/* ---------- 列印 ---------- */
@media print{
  .top,.tabbar,.actions,.noprint,.ad-slot,.modal,.toast,footer.site-foot .links{display:none!important}
  body{background:#fff;padding:0}
  .card,.res-item{box-shadow:none}
  .lamp-card,.res-item{break-inside:avoid}
}

/* ---------- 紫微：流運 ---------- */
.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
@media(max-width:860px){.month-grid{grid-template-columns:repeat(3,1fr)}}
.mg{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 8px;text-align:center;cursor:pointer;font:inherit;color:var(--ink);border-top:4px solid var(--line)}
.mg:hover{border-color:var(--gold)}
.mg.green{border-top-color:var(--lamp-green)}.mg.yellow{border-top-color:var(--lamp-yellow)}.mg.red{border-top-color:var(--lamp-red)}
.mg.sel{background:#f2edff;border-color:var(--accent)}
.mg b{display:block;font-family:"Noto Serif TC",serif;font-size:17px}
.mg .sc{font-size:22px;font-weight:700;font-family:"Noto Serif TC",serif}
.mg small{display:block;color:var(--muted);font-size:11.5px;line-height:1.4}
.tb{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:10px 0}
.tb .it{display:flex;flex-direction:column;gap:3px;font-size:13.5px}
.tb .it span{display:flex;justify-content:space-between}
.flow-lines{margin:8px 0 0;padding:0;list-style:none}
.flow-lines li{margin:6px 0;display:flex;gap:8px;font-size:14.5px}
.flow-lines li:before{content:"•";color:var(--muted)}
.flow-lines li.good:before{content:"＋";color:var(--lamp-green);font-weight:700}
.flow-lines li.warn:before{content:"－";color:var(--lamp-red);font-weight:700}
.flow-lines li.focus:before{content:"◎";color:var(--accent)}
.wrap-ad{margin-top:16px}

/* ---------- 農民曆頁 ---------- */
.alm-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:start}
@media(max-width:960px){.alm-layout{grid-template-columns:1fr}}
.alm-detail{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}
@media(max-width:960px){.alm-detail{position:static;max-height:none}}
.alm-detail h3{margin:0;font-size:24px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14.5px;margin:10px 0}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.hours{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.hours div{border:1px solid var(--line);border-radius:10px;padding:5px 4px;text-align:center;font-size:12px;background:#fff;line-height:1.35}
.hours b{display:block;font-size:15px}
.hours .y{background:var(--lamp-green-bg);border-color:#bfe1cd}
.hours .k{background:#faf6f0;color:#8a8570}
.hours .c{outline:2px solid var(--lamp-red)}
.tags{display:flex;gap:8px;align-items:flex-start;margin:6px 0;font-size:14.5px}
.tag{flex:0 0 auto;font-size:12px;font-weight:700;border-radius:6px;padding:1px 8px;margin-top:2px}
.tag.g{background:#e6f4ec;color:var(--lamp-green)}.tag.b{background:#fdebe5;color:var(--lamp-red)}.tag.n{background:#f1ece0;color:#6b5420}
.ev-lamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:8px 0}
.ev-lamps a{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;text-decoration:none;color:var(--ink);font-size:14px;background:#fff}
.ev-lamps a:hover{border-color:var(--gold)}
.ev-lamps a .lamp{margin-left:auto;padding:0 6px 0 4px;font-size:11px}
.cal .cell .tg .me{color:var(--lamp-red);font-weight:700}

/* ---------- 擇日頁 ---------- */
.pick-grid{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:start}
@media(max-width:960px){.pick-grid{grid-template-columns:1fr}}
.step{display:flex;align-items:center;gap:10px;font-size:18px;margin:18px 0 10px}
.step:first-child{margin-top:0}
.step span{width:26px;height:26px;border-radius:50%;background:var(--night2);color:var(--gold2);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-family:inherit}
.step small{font-weight:400;color:var(--muted);font-size:12px}
.card .ask-box{grid-template-columns:repeat(3,1fr)}
.res-item{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:10px;overflow:hidden}
.res-item.open{border-color:var(--gold);box-shadow:var(--shadow)}
.res-head{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;width:100%;background:none;border:0;font:inherit;color:inherit;text-align:left}
.res-head .rk{width:28px;height:28px;border-radius:50%;background:#f4efe3;color:#6b5420;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 auto}
.res-head .rk.top{background:var(--gold);color:#1d1b2f}
.res-head .dt{font-family:"Noto Serif TC",serif;font-weight:700;font-size:18px;line-height:1.3}
.res-head .sub{font-size:13px;color:var(--muted)}
.res-head .mid{flex:1;min-width:0}
.res-body{padding:4px 14px 14px;border-top:1px dashed var(--line)}
.res-body .lamps{margin-top:10px}
.res-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* ---------- 星座頁 ---------- */
.sign-hero{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;padding:24px}
@media(max-width:640px){.sign-hero{grid-template-columns:1fr}}
.sign-hero .sym{font-size:84px;line-height:1;width:132px;height:132px;border-radius:30px;background:var(--night2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-family:"Noto Serif TC",serif}
.sign-hero h2{margin:0;font-size:32px}
.sign-hero .tag-line{font-size:18px;color:var(--accent);font-family:"Noto Serif TC",serif;margin:2px 0 8px}
.sign-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
@media(max-width:860px){.sign-tiles{grid-template-columns:repeat(3,1fr)}}
.sign-tiles a{display:flex;flex-direction:column;align-items:center;gap:0;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);padding:12px 4px;font-size:14px}
.sign-tiles a:hover,.sign-tiles a.on{border-color:var(--gold);box-shadow:var(--shadow)}
.sign-tiles a b{font-size:30px;color:var(--night2);font-weight:400;line-height:1.2}
.sign-tiles a small{color:var(--muted);font-size:12px}
.planet{display:flex;flex-direction:column;gap:4px}
.planet h3{margin:0;font-size:17px;display:flex;align-items:center;gap:8px}
.planet h3 .pl{font-size:22px;color:var(--accent)}
.planet .where{font-weight:700;color:var(--night2)}
.planet p{margin:0;font-size:14px;color:var(--ink2)}
.fc-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.fc-row:last-child{border:0}
.fc-row .d{min-width:74px;font-weight:700;font-family:"Noto Serif TC",serif}
.fc-row .s{flex:1;color:var(--ink2)}
.ul-plain{margin:6px 0;padding-left:20px}
.ul-plain li{margin:4px 0}

/* ---------- 我的 ---------- */
.me-grid{display:grid;grid-template-columns:1fr 400px;gap:24px;align-items:start}
@media(max-width:960px){.me-grid{grid-template-columns:1fr}}
.prof-item{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 14px;margin-bottom:10px}
.prof-item.on{border-color:var(--gold);box-shadow:var(--shadow)}
.prof-item .nm{font-weight:700;font-size:17px}
.prof-item .mid{flex:1;min-width:0}
.prof-item .acts{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- 說明頁文字 ---------- */
.prose h2{font-size:24px;margin:34px 0 10px;padding-top:6px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:16px}
.prose ul{padding-left:22px}
.prose details{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 14px;margin:8px 0}
.prose summary{cursor:pointer;font-weight:600}
.vtable{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0}
.vtable th,.vtable td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;background:#fff}
.vtable th{background:#f4efe3}
.vtable td:nth-child(2){white-space:nowrap;font-family:ui-monospace,monospace;font-size:13px}
@media(max-width:640px){.vtable{font-size:13px}.vtable td:nth-child(2){white-space:normal}}
