/* 陳法齊師傅四柱八字排盤 — 樣式（scoped to .bazi-app） */
* , *::before, *::after { }
.bazi-app, .bazi-app * { box-sizing: border-box; }
.bazi-app {
  background: linear-gradient(160deg, #0c0c1d 0%, #1a1333 40%, #0d1b2a 100%);
}
.bazi-app {
  font-family: 'Noto Serif TC', serif;
  color: #d4d4d8;
  min-height: 100vh;
  padding: 10px;
}

.ctn { max-width: 920px; margin: 0 auto; }

.hdr { text-align: center; padding: 8px 0 14px; }
.hdr h1 {
  font-size: 22px;
  letter-spacing: 8px;
  background: linear-gradient(90deg, #b8860b, #ffd700, #b8860b);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hdr .sub { color: #6b7280; font-size: 10px; margin-top: 3px; letter-spacing: 2px; }

.card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,215,0,.12);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 12px;
  backdrop-filter: blur(6px);
}

.stit { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.stit .bar { width: 4px; height: 18px; background: linear-gradient(180deg,#ffd700,#b8860b); border-radius: 3px; flex-shrink: 0; }
.stit .txt { font-size: 14px; font-weight: 900; color: #e5e7eb; letter-spacing: 3px; }
.stit .dm { font-size: 10px; color: #6b7280; margin-left: auto; }
.stit .hint { font-size: 9px; color: #92400e; margin-left: 8px; letter-spacing: 1px; }

.tgl { display: flex; border-radius: 8px; overflow: hidden; border: 1px solid rgba(255,215,0,.2); margin-bottom: 10px; }
.tgl button { flex: 1; padding: 8px; font-size: 12px; font-weight: 700; border: none; background: rgba(0,0,0,.3); color: #6b7280; cursor: pointer; font-family: inherit; letter-spacing: 2px; transition: .2s; }
.tgl button.act { background: rgba(255,215,0,.15); color: #fbbf24; }

.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media(min-width:560px) { .fgrid { grid-template-columns: repeat(4,1fr); } }
.fgrid label { display: block; font-size: 10px; color: #b8860b; font-weight: 700; margin-bottom: 2px; letter-spacing: 1px; }
.fgrid select, .fgrid input[type=number] {
  width: 100%;
  border: 1px solid rgba(255,215,0,.18);
  border-radius: 8px;
  padding: 8px;
  font-size: 13px;
  background: rgba(0,0,0,.35);
  color: #e5e7eb;
  outline: none;
  font-family: inherit;
  -moz-appearance: textfield;
}
.fgrid input::-webkit-outer-spin-button, .fgrid input::-webkit-inner-spin-button { -webkit-appearance: none; }
.fgrid select:focus, .fgrid input:focus { box-shadow: 0 0 0 2px rgba(255,215,0,.3); }

.btn {
  margin-top: 12px;
  width: 100%;
  background: linear-gradient(90deg,#92400e,#b8860b,#d4a017,#b8860b,#92400e);
  color: #1a1a2e;
  border: none;
  padding: 12px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 8px;
  cursor: pointer;
  font-family: inherit;
  transition: .2s;
}
.btn:hover { opacity: .88; }

.info-bar { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 6px 0; font-size: 11px; color: #9ca3af; }
.info-bar .lbl { color: #b8860b; font-weight: 700; }

.pgrid { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; }
@media(min-width:560px) { .pgrid { gap: 10px; } }

.pil { border-radius: 10px; overflow: hidden; border: 1.5px solid rgba(255,215,0,.12); background: rgba(0,0,0,.2); }
.pil.day { border: 2px solid rgba(255,215,0,.5); box-shadow: 0 0 16px rgba(255,215,0,.06); }
.pil.ext { border-color: rgba(139,92,246,.25); }

.ph { text-align: center; padding: 5px 2px; font-size: 10px; font-weight: 900; letter-spacing: 3px; background: rgba(255,215,0,.05); color: #9ca3af; }
.pil.day .ph { background: rgba(255,215,0,.1); color: #fbbf24; }
.pil.ext .ph { background: rgba(139,92,246,.08); color: #a78bfa; }

.cell { text-align: center; padding: 6px 2px; border-bottom: 1px solid rgba(255,255,255,.03); }
.cell .ch { font-size: 24px; font-weight: 900; line-height: 1.2; }
@media(min-width:560px) { .cell .ch { font-size: 30px; } }
.cell .inf { font-size: 9px; color: #6b7280; margin-top: 2px; }
.cell .ss { font-size: 10px; font-weight: 700; margin-top: 1px; letter-spacing: 1px; }

.ss-bi{color:#a78bfa}.ss-jie{color:#c084fc}
.ss-shi{color:#34d399}.ss-shg{color:#2dd4bf}
.ss-zc{color:#f87171}.ss-pc{color:#fb923c}
.ss-zg{color:#60a5fa}.ss-pg{color:#38bdf8}
.ss-zy{color:#fbbf24}.ss-py{color:#a3a3a3}

.cang { border-top: 1px dashed rgba(255,215,0,.08); padding: 5px 2px; background: rgba(0,0,0,.1); }
.cang .ct { text-align: center; font-size: 8px; color: #92400e; font-weight: 700; margin-bottom: 3px; letter-spacing: 1px; }
.cang .ci { display: flex; justify-content: center; align-items: center; gap: 2px; margin-bottom: 1px; }
.cang .cl { color: #6b7280; font-size: 7px; min-width: 14px; text-align: right; }
@media(min-width:560px) { .cang .cl { font-size: 8px; min-width: 18px; } }
.cang .cv { font-weight: 900; font-size: 13px; }
@media(min-width:560px) { .cang .cv { font-size: 15px; } }
.cang .css { font-size: 7px; font-weight: 700; min-width: 20px; text-align: left; }
@media(min-width:560px) { .cang .css { font-size: 8px; min-width: 24px; } }

.sha { border-top: 1px dashed rgba(255,215,0,.1); background: rgba(0,0,0,.12); padding: 4px 2px; min-height: 28px; }
.sha .st { text-align: center; font-size: 7px; color: #92400e; font-weight: 700; margin-bottom: 2px; letter-spacing: 1px; }
.sha .tg { font-size: 8px; padding: 1px 2px; border-radius: 3px; font-weight: 700; text-align: center; margin-bottom: 1px; line-height: 1.4; }
@media(min-width:560px) { .sha .tg { font-size: 9px; padding: 2px 4px; } }
.sha .tg.g { background: rgba(16,185,129,.1); color: #34d399; border: 1px solid rgba(16,185,129,.2); }
.sha .tg.b { background: rgba(244,63,94,.1); color: #fb7185; border: 1px solid rgba(244,63,94,.2); }
.sha .non { text-align: center; color: #374151; font-size: 9px; }

.ew{color:#4ade80}.ef{color:#f87171}.ee{color:#fbbf24}.em{color:#e2e8f0}.ewt{color:#60a5fa}

.hscroll { overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
.hscroll::-webkit-scrollbar { height: 3px; }
.hscroll::-webkit-scrollbar-thumb { background: rgba(255,215,0,.2); border-radius: 3px; }

.dy-row { display: flex; gap: 6px; min-width: max-content; padding: 2px 0; }
.dy-card {
  width: 76px; flex-shrink: 0; border-radius: 8px;
  border: 1px solid rgba(255,215,0,.1); background: rgba(0,0,0,.2);
  text-align: center; padding: 8px 4px; transition: all .25s ease; cursor: pointer; position: relative;
}
.dy-card:hover { border-color: rgba(255,215,0,.35); transform: translateY(-2px); background: rgba(255,215,0,.06); }
.dy-card.cur { border-color: rgba(255,215,0,.5); background: rgba(255,215,0,.08); box-shadow: 0 0 12px rgba(255,215,0,.08); }
.dy-card.sel { border-color: #ffd700!important; background: rgba(255,215,0,.18)!important; box-shadow: 0 0 20px rgba(255,215,0,.18)!important; transform: translateY(-3px); }
.dy-age { font-size: 9px; color: #fbbf24; font-weight: 700; margin-bottom: 4px; }
.dy-gz .s { font-size: 18px; font-weight: 900; display: block; line-height: 1.3; }
.dy-gz .b { font-size: 18px; font-weight: 900; display: block; line-height: 1.3; }
.dy-el { font-size: 8px; color: #6b7280; margin-top: 3px; }
.dy-range { font-size: 8px; color: #4b5563; margin-top: 2px; letter-spacing: 1px; }
.dy-ss { font-size: 8px; font-weight: 700; margin-top: 2px; }
.dy-click-hint { font-size: 7px; color: #4b5563; margin-top: 4px; letter-spacing: 1px; transition: .2s; }
.dy-card:hover .dy-click-hint { color: #b8860b; }
.dy-card.sel .dy-click-hint { color: #fbbf24; }

.ln-row { display: flex; gap: 5px; min-width: max-content; padding: 2px 0; }
.ln-row.detail { flex-wrap: wrap; justify-content: center; min-width: 0; gap: 8px; }
.ln-card { width: 58px; flex-shrink: 0; border-radius: 8px; border: 1px solid rgba(255,215,0,.08); background: rgba(0,0,0,.2); text-align: center; padding: 5px 3px; transition: .2s; }
.ln-card.cur { border-color: rgba(255,215,0,.4); background: rgba(255,215,0,.08); }
.ln-card.det { width: 76px; padding: 8px 5px; border: 1px solid rgba(255,215,0,.15); }
.ln-card.det:hover { border-color: rgba(255,215,0,.35); }
.ln-card.det.cur { border-color: rgba(255,215,0,.5); background: rgba(255,215,0,.1); box-shadow: 0 0 12px rgba(255,215,0,.08); }
.ln-yr { font-size: 9px; color: #6b7280; margin-bottom: 2px; }
.ln-age { font-size: 10px; color: #fbbf24; font-weight: 700; margin-bottom: 3px; }
.ln-gz .s { font-size: 15px; font-weight: 900; display: block; line-height: 1.3; }
.ln-gz .b { font-size: 15px; font-weight: 900; display: block; line-height: 1.3; }
.ln-card.det .ln-gz .s { font-size: 20px; }
.ln-card.det .ln-gz .b { font-size: 20px; }
.ln-el { font-size: 8px; color: #6b7280; margin-top: 1px; }
.ln-sx { font-size: 8px; color: #4b5563; }
.ln-ss { font-size: 8px; font-weight: 700; margin-top: 2px; }

#dySelBar { display: none; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 14px; background: linear-gradient(135deg,rgba(255,215,0,.06),rgba(255,215,0,.02)); border: 1px solid rgba(255,215,0,.2); border-radius: 10px; flex-wrap: wrap; }
.dsl-gz { font-size: 26px; font-weight: 900; letter-spacing: 4px; line-height: 1.2; }
.dsl-info { font-size: 11px; color: #9ca3af; letter-spacing: 1px; line-height: 1.6; }
.dsl-info .gold { color: #fbbf24; font-weight: 700; }
.dsl-btn { margin-left: auto; background: rgba(255,255,255,.06); border: 1px solid rgba(255,215,0,.25); color: #fbbf24; padding: 6px 16px; border-radius: 8px; font-size: 11px; font-weight: 700; cursor: pointer; font-family: inherit; letter-spacing: 2px; transition: .2s; }
.dsl-btn:hover { background: rgba(255,215,0,.12); border-color: rgba(255,215,0,.5); }

.dc { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media(min-width:560px) { .dc { grid-template-columns: 1fr 1fr; } }
.dh { display: flex; align-items: center; gap: 6px; padding-bottom: 5px; margin-bottom: 6px; }
.dh.g { border-bottom: 2px solid rgba(16,185,129,.3); }
.dh.b { border-bottom: 2px solid rgba(244,63,94,.3); }
.dh h3 { font-weight: 900; font-size: 13px; letter-spacing: 2px; }
.dh.g h3 { color: #34d399; }
.dh.b h3 { color: #fb7185; }
.di { border-radius: 8px; padding: 8px; margin-bottom: 5px; }
.di.g { background: rgba(16,185,129,.05); border: 1px solid rgba(16,185,129,.12); }
.di.b { background: rgba(244,63,94,.05); border: 1px solid rgba(244,63,94,.12); }
.dit { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; }
.din { font-weight: 900; font-size: 12px; }
.di.g .din { color: #34d399; }
.di.b .din { color: #fb7185; }
.dip { font-size: 8px; padding: 1px 6px; border-radius: 10px; font-weight: 700; }
.di.g .dip { background: rgba(16,185,129,.12); color: #6ee7b7; }
.di.b .dip { background: rgba(244,63,94,.12); color: #fda4af; }
.did { font-size: 10px; line-height: 1.6; color: #9ca3af; }
.note { text-align: center; font-size: 9px; color: #4b5563; margin-top: 6px; line-height: 1.6; }

#result { display: none; }

.kw-wrap { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(255,215,0,.1); }
.kw-item { display: flex; align-items: center; gap: 8px; background: rgba(0,0,0,.25); border: 1px solid rgba(255,215,0,.12); border-radius: 8px; padding: 8px 16px; }
.kw-label { font-size: 11px; color: #b8860b; font-weight: 700; letter-spacing: 2px; }
.kw-val { font-size: 18px; font-weight: 900; color: #e5e7eb; letter-spacing: 3px; }
.kw-sub { font-size: 10px; color: #6b7280; font-weight: 700; }

.print-btn { margin-top: 12px; width: 100%; background: linear-gradient(90deg,#1e3a5f,#2563eb,#3b82f6,#2563eb,#1e3a5f); color: #fff; border: none; padding: 12px; border-radius: 10px; font-size: 16px; font-weight: 900; letter-spacing: 8px; cursor: pointer; font-family: inherit; transition: .2s; display: none; }
.print-btn:hover { opacity: .88; }

.db-save-panel { display: flex; flex-direction: column; gap: 10px; }
.db-field label { display: block; font-size: 10px; color: #b8860b; font-weight: 700; margin-bottom: 3px; letter-spacing: 1px; }
.db-field input[type=text], .db-field textarea { width: 100%; border: 1px solid rgba(255,215,0,.18); border-radius: 8px; padding: 8px 10px; font-size: 12px; background: rgba(0,0,0,.35); color: #e5e7eb; outline: none; font-family: inherit; resize: vertical; }
.db-field input[type=text]:focus, .db-field textarea:focus { box-shadow: 0 0 0 2px rgba(255,215,0,.3); }
.db-field input[readonly] { background: rgba(0,0,0,.45); color: #fbbf24; cursor: default; }
.db-save-btn { width: 100%; background: linear-gradient(90deg,#065f46,#059669,#10b981,#059669,#065f46); color: #fff; border: none; padding: 10px; border-radius: 8px; font-size: 13px; font-weight: 900; letter-spacing: 4px; cursor: pointer; font-family: inherit; transition: .2s; }
.db-save-btn:hover { opacity: .88; }
.db-status { font-size: 9px; color: #4b5563; text-align: center; margin-top: 4px; }
#dbLoading { font-size: 11px; color: #6b7280; text-align: center; padding: 8px 0; }
.db-actions { display: flex; gap: 8px; }
.db-act-btn { flex: 1; padding: 7px; border-radius: 7px; font-size: 11px; font-weight: 700; border: 1px solid rgba(255,215,0,.15); background: rgba(0,0,0,.25); color: #9ca3af; cursor: pointer; font-family: inherit; letter-spacing: 1px; transition: .2s; }
.db-act-btn:hover { border-color: rgba(255,215,0,.3); color: #fbbf24; }
.db-records-wrap { max-height: 260px; overflow-y: auto; }
.db-records-wrap::-webkit-scrollbar { width: 3px; }
.db-records-wrap::-webkit-scrollbar-thumb { background: rgba(255,215,0,.2); border-radius: 3px; }
.db-empty { text-align: center; color: #4b5563; font-size: 11px; padding: 16px 0; }
.db-record { display: flex; align-items: flex-start; gap: 8px; padding: 8px; border-radius: 8px; border: 1px solid rgba(255,215,0,.08); background: rgba(0,0,0,.15); margin-bottom: 5px; }
.db-record-id { font-size: 9px; color: #4b5563; min-width: 22px; padding-top: 2px; }
.db-record-info { flex: 1; min-width: 0; }
.db-record-name { font-size: 12px; font-weight: 700; color: #e5e7eb; margin-bottom: 2px; }
.db-record-detail { font-size: 10px; color: #9ca3af; margin-bottom: 2px; }
.db-record-notes { font-size: 9px; color: #6b7280; margin-bottom: 2px; }
.db-record-time { font-size: 9px; color: #374151; }
.db-record-actions { display: flex; gap: 4px; }
.db-rec-btn { padding: 4px 7px; border-radius: 5px; border: 1px solid rgba(255,215,0,.12); background: rgba(0,0,0,.2); font-size: 12px; cursor: pointer; transition: .2s; }
.db-rec-btn.load:hover { border-color: rgba(255,215,0,.35); background: rgba(255,215,0,.08); }
.db-rec-btn.del:hover { border-color: rgba(244,63,94,.3); background: rgba(244,63,94,.08); }
#dbSaveCard { display: none; }
#dbToast { display: none; position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.85); color: #fbbf24; border: 1px solid rgba(255,215,0,.3); padding: 8px 20px; border-radius: 8px; font-size: 12px; font-weight: 700; z-index: 9999; letter-spacing: 1px; transition: opacity .3s; backdrop-filter: blur(8px); }

@media print {
  @page { margin: 6mm 5mm; size: A4; }

  /* 隱藏所有非列印元素 */
  .no-print,
  .print-btn,
  .btn,
  .tgl,
  .fgrid,
  .dy-click-hint,
  .dsl-btn,
  .note,
  .db-section,
  #dbSaveCard,
  #dbRecordsCard,
  #shaDCard,
  .card:has(#lnRow),
  #lnCard,
  #dySelBar {
    display: none !important;
  }

  /* 重置背景與顏色 */
  html, body {
    background: white !important;
    background-image: none !important;
    color: #1a1a1a !important;
    padding: 0 !important;
    min-height: auto !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* 確保結果區域顯示 */
  #result {
    display: block !important;
  }

  /* 輸入卡片隱藏 */
  .card.no-print {
    display: none !important;
  }

  /* 卡片樣式調整 */
  .card {
    background: transparent !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    backdrop-filter: none !important;
    padding: 10px !important;
    margin-bottom: 8px !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .ctn { max-width: 100% !important; }

  .hdr h1 {
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: #b8860b !important;
    color: #b8860b !important;
    font-size: 20px !important;
  }
  .hdr .sub { color: #666 !important; }

  .stit .bar { background: #b8860b !important; }
  .stit .txt { color: #1a1a1a !important; }
  .stit .dm { color: #666 !important; }
  .stit .hint { display: none !important; }

  .info-bar { color: #333 !important; }
  .info-bar .lbl { color: #8b6914 !important; }

  .pil, .pil.day, .pil.ext {
    background: transparent !important;
    border: 1.5px solid #999 !important;
    box-shadow: none !important;
  }
  .pil.day { border: 2px solid #b8860b !important; }
  .pil.ext { border-color: #7c3aed !important; }

  .ph { background: #f5f0e0 !important; color: #666 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .pil.day .ph { background: #fdf3d0 !important; color: #92400e !important; }
  .pil.ext .ph { background: #f0ebff !important; color: #6d28d9 !important; }

  .cell { border-bottom: 1px solid #e5e5e5 !important; }
  .cell .inf { color: #666 !important; }

  .ew { color: #16a34a !important; }
  .ef { color: #dc2626 !important; }
  .ee { color: #a16207 !important; }
  .em { color: #374151 !important; }
  .ewt { color: #2563eb !important; }

  .ss-bi{color:#6d28d9!important}.ss-jie{color:#7c3aed!important}
  .ss-shi{color:#059669!important}.ss-shg{color:#0d9488!important}
  .ss-zc{color:#dc2626!important}.ss-pc{color:#c2410c!important}
  .ss-zg{color:#2563eb!important}.ss-pg{color:#0284c7!important}
  .ss-zy{color:#a16207!important}.ss-py{color:#57534e!important}

  .cang { background: transparent !important; border-top: 1px dashed #ccc !important; }
  .cang .ct { color: #8b6914 !important; }
  .cang .cl { color: #666 !important; }

  .sha { background: transparent !important; border-top: 1px dashed #ccc !important; }
  .sha .st { color: #8b6914 !important; }
  .sha .tg.g { background: #ecfdf5 !important; color: #059669 !important; border-color: #a7f3d0 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .sha .tg.b { background: #fef2f2 !important; color: #dc2626 !important; border-color: #fecaca !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .sha .non { color: #999 !important; }

  .kw-wrap { border-top: 1px dashed #ccc !important; }
  .kw-item { background: #f9f6ee !important; border: 1px solid #d4c88a !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .kw-label { color: #8b6914 !important; }
  .kw-val { color: #1a1a1a !important; }
  .kw-sub { color: #666 !important; }

  .hscroll { overflow-x: visible !important; }
  .dy-row { flex-wrap: wrap !important; min-width: 0 !important; justify-content: center; gap: 4px !important; }
  .dy-card, .dy-card.cur, .dy-card.sel {
    background: transparent !important;
    border: 1px solid #bbb !important;
    box-shadow: none !important;
    transform: none !important;
    width: 70px !important;
    padding: 6px 3px !important;
    cursor: default !important;
  }
  .dy-card.cur { border: 2px solid #b8860b !important; }
  .dy-age { color: #92400e !important; }
  .dy-el { color: #666 !important; }
  .dy-range { color: #888 !important; }

  .ln-row { flex-wrap: wrap !important; min-width: 0 !important; justify-content: center; }
  .ln-card, .ln-card.cur, .ln-card.det, .ln-card.det.cur {
    background: transparent !important;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
  }
  .ln-card.cur, .ln-card.det.cur { border: 2px solid #b8860b !important; }
  .ln-yr { color: #666 !important; }
  .ln-age { color: #92400e !important; }
  .ln-el { color: #666 !important; }
  .ln-sx { color: #888 !important; }

  #dySelBar { background: #f9f6ee !important; border: 1px solid #d4c88a !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .dsl-info { color: #333 !important; }
  .dsl-info .gold { color: #92400e !important; }

  .dh.g { border-bottom: 2px solid #059669 !important; }
  .dh.b { border-bottom: 2px solid #dc2626 !important; }
  .dh.g h3 { color: #059669 !important; }
  .dh.b h3 { color: #dc2626 !important; }
  .di.g { background: #f0fdf4 !important; border: 1px solid #bbf7d0 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .di.b { background: #fef2f2 !important; border: 1px solid #fecaca !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .di.g .din { color: #059669 !important; }
  .di.b .din { color: #dc2626 !important; }
  .di.g .dip { background: #dcfce7 !important; color: #059669 !important; }
  .di.b .dip { background: #fee2e2 !important; color: #dc2626 !important; }
  .did { color: #555 !important; }

  .dc { display: block !important; }
  .dc > div { page-break-inside: avoid; break-inside: avoid; }
  .di { page-break-inside: avoid; break-inside: avoid; }

  /* ====== 列印專用：合併四柱+命宮為一行8組 ====== */
  /* 隱藏原來分開的兩個 card */
  .card:has(#pGrid),
  .card:has(#exGrid) {
    display: none !important;
  }

  /* 列印專用合併區塊 */
  #printPilsCard {
    display: block !important;
    border: 1px solid #ccc !important;
    border-radius: 6px !important;
    padding: 4px 6px !important;
    margin-bottom: 4px !important;
    background: transparent !important;
  }
  #printPilsRow {
    display: grid !important;
    grid-template-columns: repeat(8, 1fr) !important;
    gap: 3px !important;
  }
  #printPilsRow .pil {
    background: transparent !important;
    border: 1px solid #bbb !important;
    box-shadow: none !important;
    min-width: 0 !important;
    font-size: 9px !important;
  }
  #printPilsRow .pil.day { border: 2px solid #b8860b !important; }
  #printPilsRow .pil.ext { border-color: #7c3aed !important; }
  #printPilsRow .ph { font-size: 8px !important; padding: 2px 0 !important; }
  #printPilsRow .cell { padding: 1px 2px !important; }
  #printPilsRow .ch { font-size: 14px !important; }
  #printPilsRow .ss { font-size: 8px !important; }
  #printPilsRow .inf { font-size: 7px !important; }
  #printPilsRow .cang { padding: 2px !important; }
  #printPilsRow .cang .ct { font-size: 7px !important; }
  #printPilsRow .cang .cl { font-size: 8px !important; }
  #printPilsRow .sha { padding: 2px !important; }
  #printPilsRow .sha .st { font-size: 7px !important; }
  #printPilsRow .sha .tg { font-size: 7px !important; padding: 1px 3px !important; }
  #printPilsRow .kw-wrap { display: none !important; }

  /* ====== 列印專用：大運流年一覽 ====== */
  #printDyAllCard {
    display: block !important;
    border: 1px solid #ccc !important;
    border-radius: 6px !important;
    padding: 4px 6px !important;
    margin-bottom: 4px !important;
    background: transparent !important;
  }
  #printDyAll {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
  }
  .pdy-block {
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    padding: 2px 4px !important;
    background: transparent !important;
    width: 100% !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .pdy-block.cur-dy {
    border: 1.5px solid #b8860b !important;
    background: #fffbf0 !important;
  }
  .pdy-hdr {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    border-bottom: 1px solid #e5e5e5 !important;
    padding-bottom: 2px !important;
    margin-bottom: 3px !important;
  }
  .pdy-age { font-size: 8px !important; color: #92400e !important; font-weight: 700 !important; min-width: 48px !important; }
  .pdy-gz { font-size: 15px !important; font-weight: 700 !important; line-height: 1 !important; }
  .pdy-el { font-size: 8px !important; color: #666 !important; }
  .pdy-ss { font-size: 8px !important; font-weight: 600 !important; }
  .pdy-yr { font-size: 8px !important; color: #888 !important; margin-left: auto !important; }
  .pdy-lns {
    display: grid !important;
    grid-template-columns: repeat(10, 1fr) !important;
    gap: 2px !important;
  }
  .pln-cell {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 2px 1px !important;
    border: 1px solid #eee !important;
    border-radius: 2px !important;
  }
  .pln-cell.cur-yr {
    background: #fffbf0 !important;
    border-color: #b8860b !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .pln-gz-vert { display: flex !important; flex-direction: column !important; align-items: center !important; line-height: 1 !important; margin-bottom: 2px !important; }
  .pln-tg { font-size: 10px !important; font-weight: 700 !important; color: #333 !important; }
  .pln-dz { font-size: 10px !important; font-weight: 700 !important; color: #333 !important; }
  .pln-age { font-size: 10px !important; font-weight: 700 !important; color: #666 !important; text-align: center !important; }

  /* 大運區塊在屏幕上隱藏 */
  .card:has(#dyRow) { display: none !important; }

  /* 全頁壓縮 */
  .card { padding: 4px 6px !important; margin-bottom: 4px !important; }
  .hdr { padding: 4px 0 2px !important; margin-bottom: 4px !important; }
  .hdr h1 { font-size: 16px !important; letter-spacing: 4px !important; }
  .hdr .sub { font-size: 9px !important; }
  .stit { margin-bottom: 4px !important; }
  .stit .txt { font-size: 11px !important; }
  .info-bar { font-size: 9px !important; gap: 6px !important; flex-wrap: wrap !important; }
  .pgrid { gap: 4px !important; }
  .pil { min-width: 0 !important; }
  .ch { font-size: 18px !important; }
}
