/* 凯尔特牌盘：固定设计坐标 700×1192，整体等比缩放一次成型（结果盘／发牌盘／历史共用同一组件） */
.board-hint{text-align:center; color:var(--cream-dim); font-size:13px; margin:12px 0 2px}
.cboard{position:relative; width:100%; max-width:700px; margin:10px auto 16px; aspect-ratio:700/1192; overflow:hidden}
.cboard-stage{position:absolute; left:0; top:0; width:700px; height:1192px; transform-origin:0 0}
.bd-cell{position:absolute; width:155px; text-align:center}
.bd-card{width:118px; border-radius:8px; box-shadow:0 8px 20px rgba(0,0,0,.45); display:block; margin:0 auto; cursor:pointer}
.bd-card.rev{transform:rotate(180deg)}
.bd-slotbox{width:118px; aspect-ratio:560/973; margin:0 auto; border:1.5px dashed rgba(233,161,59,.5); border-radius:8px;
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:30px; color:var(--gold2); background:rgba(255,255,255,.03)}
.bd-cell .deal-slot{width:118px}
.bd-stack{position:relative; width:118px; margin:0 auto}
.bd-main{width:118px; display:block; border-radius:8px; box-shadow:0 8px 20px rgba(0,0,0,.45); cursor:pointer}
.bd-main.rev{transform:rotate(180deg)}
.bd-cross{position:absolute; top:50%; left:50%; width:96px; border-radius:7px; z-index:2;
  transform:translate(-50%,-50%) rotate(90deg); transform-origin:center;
  box-shadow:0 8px 20px rgba(0,0,0,.55); cursor:pointer}
.bd-cross.rev{transform:translate(-50%,-50%) rotate(270deg)}
.bd-cell .bd-cross-btn{position:absolute; top:50%; left:50%; width:96px; z-index:2; margin:0;
  transform:translate(-50%,-50%) rotate(90deg); transform-origin:center; box-shadow:0 8px 20px rgba(0,0,0,.55)}
/* 全盘统一标注组件（设计单位字号，随盘等比缩放，比例天然一致） */
.bd-cap{margin-top:8px}
.bd-pos{font-size:21px; color:var(--gold2); letter-spacing:.05em; line-height:1.3}
.bd-nm{font-family:var(--serif); font-size:23px; color:var(--cream); line-height:1.3; margin-top:2px}
.bd-desc{font-size:16.5px; color:var(--cream-dim); line-height:1.45; margin-top:3px}
.bd-ori{font-size:17px; color:var(--cream-dim); margin-top:2px}
/* 阻碍标注：与其它牌位同一 .bd-cap 组件，安放在十字右上留白格，细金线引回横牌 */
.bd-obcap .bd-cap{text-align:left; margin-top:86px; border-left:2px solid rgba(245,212,87,.55); padding-left:12px}
.bd-leader{position:absolute; left:0; top:0; width:700px; height:1192px; z-index:3; pointer-events:none}
.bd-leader polyline{stroke:rgba(245,212,87,.75); stroke-width:2}
.bd-leader circle{fill:var(--gold2)}
.note-edit{width:100%; margin-top:10px; background:rgba(255,255,255,.06); border:1px solid var(--line);
  border-radius:10px; color:var(--cream); padding:10px 12px; font-size:14.5px; line-height:1.7; resize:vertical}
.note-edit::placeholder{color:#9b8296}
.pdesc{font-size:11px; color:var(--cream-dim); line-height:1.55; margin-top:3px; max-width:104px}
.celtic-cell .pdesc{margin-left:auto; margin-right:auto}
.pos-desc{display:block; font-size:11.5px; color:var(--cream-dim); font-weight:400; line-height:1.55; margin-top:2px}

/* ===== 第四批：牌详情页分层排版 ===== */
.detail-head{display:flex; gap:22px; padding:22px 24px; align-items:flex-start; max-width:760px; margin:0 auto}
.backline{max-width:760px; margin:0 auto 10px}
.detail-head .dh-img{width:190px; flex:none; border-radius:12px; box-shadow:0 10px 26px rgba(0,0,0,.35)}
.detail-head .dh-img.rev{transform:rotate(180deg)}
.dh-text h1{font-size:30px; margin:8px 0 4px; color:var(--ink); letter-spacing:.06em}
.dh-text .en{color:var(--rust); letter-spacing:.14em; font-size:13px; text-transform:uppercase}
.badge-cat{display:inline-block; font-size:12px; letter-spacing:.18em; color:#7a5510; background:var(--paper2);
  border:1px solid #e0cd96; border-radius:999px; padding:4px 12px}
.dh-theme{font-family:var(--serif); color:var(--plum); font-size:16px; margin:10px 0 4px}
.dh-hint{color:var(--ink2); font-size:13.5px; line-height:1.7; margin:6px 0 12px}
.detail-sticky{position:sticky; top:62px; z-index:40; display:flex; align-items:center; gap:10px;
  margin:14px auto 0; max-width:760px; padding:8px 14px; border-radius:999px;
  background:rgba(29,10,38,.92); border:1px solid var(--line); backdrop-filter:blur(8px)}
.ds-thumb{width:22px; border-radius:4px} .ds-thumb.rev{transform:rotate(180deg)}
.ds-name{font-family:var(--serif); letter-spacing:.08em; color:var(--cream)}
.orient-tabs{margin-left:auto; display:inline-flex; border:1px solid var(--line); border-radius:999px; overflow:hidden}
.orient-tabs button{border:none; background:transparent; color:var(--cream-dim); padding:7px 20px; font-size:14.5px}
.orient-tabs button.on{background:var(--gold); color:#33180a; font-weight:700}
.detail-body{max-width:760px; margin:14px auto 0; padding:30px 34px}
.quote-card{background:linear-gradient(180deg,#fdf3d3,#f7e7ba); border:1px solid #e3cd8d; border-left:5px solid var(--gold);
  border-radius:12px; padding:16px 20px; margin-bottom:18px}
.quote-card .qc-label{font-size:12px; letter-spacing:.3em; color:#7A5A14}
.quote-card p{font-family:var(--serif); font-size:20px; line-height:1.7; margin:6px 0 2px; color:#5d3d07}
.sec-title{font-family:var(--serif); color:var(--rust); font-size:18px; letter-spacing:.12em;
  margin:26px 0 10px; padding-bottom:7px; border-bottom:1px solid #e7d9b4}
.body-text{font-size:16.5px; line-height:1.9; color:var(--ink); margin:0 0 10px}
.lead-text{font-size:17px; color:#4a2438; border-left:3px solid rgba(144,35,85,.35); padding-left:14px}
.sub-block{margin:0 0 16px; padding-top:12px; border-top:1px dashed #e0d0a2}
.sub-block h4{font-family:var(--serif); color:var(--plum); font-size:16px; margin:0 0 6px; letter-spacing:.08em}
.action-card{background:linear-gradient(180deg, rgba(233,161,59,.2), rgba(233,161,59,.1));
  border:1px solid rgba(190,120,30,.55); border-radius:12px; padding:16px 20px; margin:20px 0 6px}
.action-card .ac-label{display:inline-block; font-size:12px; letter-spacing:.26em; color:#7A4A00;
  border:1px solid rgba(190,120,30,.6); border-radius:999px; padding:3px 10px; margin-bottom:8px; background:rgba(255,251,238,.7)}
.action-card p{font-size:16.5px; line-height:1.9; margin:0; color:#4d2f05}
.action-card.compact{margin:12px 0 2px; padding:12px 16px}
.tip-quote{margin:22px 0 4px; padding:14px 20px; border-left:4px solid var(--plum);
  background:rgba(119,31,104,.07); border-radius:0 12px 12px 0; font-size:15.5px; line-height:1.9; color:#472b3d}
.tip-quote span{display:block; font-family:var(--serif); font-size:13px; letter-spacing:.3em; color:var(--plum); margin-bottom:6px}
@media(max-width:640px){
  .detail-head{flex-direction:column; align-items:center; text-align:center; padding:20px 16px}
  .detail-head .dh-img{width:160px}
  .detail-body{padding:22px 18px}
  .detail-sticky{top:58px}
}
/* ===== 第四批：解读手风琴 + AI 分段 ===== */
.reading .rcard-acc{border-top:1px solid #e6d9bd; padding:6px 0}
.reading .rcard-acc summary{cursor:pointer; font-family:var(--serif); font-size:16.5px; color:var(--rust);
  padding:10px 2px; list-style:none; line-height:1.6}
.reading .rcard-acc summary::-webkit-details-marker{display:none}
.reading .rcard-acc summary::after{content:'▸'; float:right; color:var(--plum); transition:.2s}
.reading .rcard-acc[open ] summary::after{transform:rotate(90deg)}
.reading .rcard-acc .acc-body{padding:2px 2px 14px}
.reading .rcard-acc .acc-body p{font-size:16px; line-height:1.88}
.reading .rcard-acc.prophecy{background:#fdf3d3; border:1px solid #e3cd8d; border-radius:12px; padding:6px 14px; margin-top:10px}
.ai-out{white-space:normal}
.ai-out p{margin:0 0 10px; line-height:1.9}
/* ===== 第五批：组合提示 ===== */
.combo-zone{margin:4px 0 14px}
.combo-zone-title{font-family:var(--serif); color:var(--plum); letter-spacing:.14em; font-size:14px; margin-bottom:8px}
.combo-card{background:linear-gradient(180deg,#fdf3d3,#f9ecc4); border:1px solid #e3cd8d; border-left:5px solid var(--magenta);
  border-radius:12px; padding:14px 18px; margin-bottom:10px}
.combo-card p{font-size:15.5px; line-height:1.88; margin:4px 0; color:#4a2438}
.combo-trigger{font-family:var(--serif); font-size:14px; color:var(--rust); letter-spacing:.05em}
.combo-src{font-size:12px; color:#7A5E26; margin-top:4px}
.combo-paper{max-width:760px; margin:14px auto 0; padding:24px 30px}
.combo-mini{border-top:1px dashed #e0d0a2; padding:12px 0}
.combo-mini p{font-size:15.5px; line-height:1.88; margin:4px 0}
.combo-mini a{color:var(--plum); font-weight:600}
/* ===== 第六批：学习锦囊 ===== */
.tip-item{border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px; background:rgba(255,255,255,.03)}
.tip-item p{line-height:1.88; font-size:15px; margin:6px 0}
.tip-item a{color:var(--gold2); font-family:var(--serif)}
.tip-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.tip-head .favbtn{margin-left:auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--line);
  background:transparent; color:#d8c7a8; font-size:15px}
.tip-head .favbtn.on{color:var(--gold2); border-color:var(--gold)}
.tip-random{border:1px solid rgba(233,161,59,.55); border-radius:14px; padding:14px 16px; margin-bottom:14px; background:rgba(233,161,59,.07)}
.tip-random .tip-item{margin-bottom:0}
/* ===== 第七批：考试 ===== */
.quiz-opt.sel{border-color:var(--gold); background:rgba(233,161,59,.2)}
.quiz-opt.static{cursor:default}
.exam-q{margin-bottom:6px; line-height:1.85}
.exp-box{margin:12px 0; border:1px solid #d8c9a0; background:#fdf6dd; border-radius:12px; padding:14px 18px}
.exp-basis{font-size:14.5px; line-height:1.85; color:#5d4a12; margin-bottom:8px}
.exp-line{font-size:14px; line-height:1.8; padding:5px 0; border-top:1px dashed #e0d0a2; color:#4a3a20}
.exam-review{border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-bottom:14px; background:rgba(255,255,255,.03)}
.exam-review.bad{border-color:rgba(228,87,46,.55)}
.er-head{display:flex; justify-content:space-between; font-family:var(--serif); color:var(--gold2); margin-bottom:8px}
.exam-review .exp-box{color:var(--ink)}


