.srv{
  --srv-paper:var(--card,var(--panel,#fff));
  --srv-soft:var(--bg,#f6f4ef);
  --srv-line:var(--line,#e5e0d8);
  --srv-ink:var(--ink,#252321);
  --srv-sub:var(--sub,#827c75);
  --srv-title:var(--heading,#29354d);
  --srv-green:#34735f;
  --srv-red:#b95a48;
  --srv-gold:#a87b34;
  color:var(--srv-ink);
  margin:0 0 18px;
}
.srv.srv-dark{
  --srv-paper:#121b2c;
  --srv-soft:#0c1422;
  --srv-line:#26354a;
  --srv-ink:#e8e2d6;
  --srv-sub:#8c9aae;
  --srv-title:#f1eadb;
  --srv-green:#66c993;
  --srv-red:#e37560;
  --srv-gold:#d0ae55;
}
.srv *{box-sizing:border-box}
.srv-cover{
  position:relative;overflow:hidden;border-radius:20px;padding:23px 21px 24px;margin-bottom:22px;
  background:linear-gradient(145deg,#f2eee4 0%,#faf8f3 62%,#e8dfcf 100%);
  border:1px solid rgba(79,63,42,.09);color:#2a2926;
}
.srv-cover::before{
  content:"";position:absolute;right:-42px;top:-68px;width:190px;height:190px;border-radius:50%;
  border:1px solid rgba(92,72,40,.09);box-shadow:0 0 0 24px rgba(92,72,40,.025),0 0 0 48px rgba(92,72,40,.018);
}
.srv-gusu .srv-cover{
  color:#f4eddf;background:
    radial-gradient(circle at 84% 18%,rgba(213,178,88,.21),transparent 23%),
    linear-gradient(145deg,#18223a,#2e2a49 60%,#5b4930);
  border-color:rgba(213,178,88,.18);
}
.srv-cover-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.srv-scope{
  display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border-radius:999px;
  font-size:10px;font-weight:850;letter-spacing:.8px;background:rgba(42,41,38,.08)
}
.srv-gusu .srv-scope{background:rgba(255,255,255,.12)}
.srv-system{font-size:10px;letter-spacing:1.1px;opacity:.56}
.srv-cover-title{
  position:relative;z-index:1;font-family:"Noto Serif KR",serif;font-size:24px;font-weight:800;
  letter-spacing:-.7px;line-height:1.32;margin-top:24px;
}
.srv-cover-sub{position:relative;z-index:1;max-width:88%;font-size:12.5px;line-height:1.72;opacity:.72;margin-top:8px}
.srv-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:25px 2px 11px;
  padding-bottom:9px;border-bottom:1px solid var(--srv-line)
}
.srv-section-head>div{font-family:"Noto Serif KR",serif;color:var(--srv-title);font-size:16px;font-weight:800}
.srv-section-head>span{font-size:9.5px;color:var(--srv-sub);text-align:right}

/* 운명감정: 계산 대시보드가 아닌 세로형 인물 기록 */
.srv-portrait{border-bottom:1px solid var(--srv-line)}
.srv-portrait-row{display:grid;grid-template-columns:36px 1fr;gap:11px;padding:16px 2px;border-top:1px solid var(--srv-line)}
.srv-portrait-row:first-child{border-top:0}
.srv-portrait-row>span{font-family:serif;color:var(--srv-gold);font-size:11px;letter-spacing:1px;padding-top:2px}
.srv-portrait-row b{display:block;color:var(--srv-title);font-size:12px;margin-bottom:6px}
.srv-portrait-row p{margin:0;font-family:"Noto Serif KR",serif;font-size:15px;line-height:1.72;color:var(--srv-ink)}
.srv-rail{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--srv-line);border-bottom:1px solid var(--srv-line)}
.srv-rail-item{position:relative;min-width:0;padding:18px 12px;border-left:1px solid var(--srv-line)}
.srv-rail-item:first-child{border-left:0}
.srv-rail-item.current{background:linear-gradient(180deg,rgba(168,123,52,.10),transparent)}
.srv-rail-item::before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--srv-sub);margin-bottom:11px}
.srv-rail-item.open::before{background:var(--srv-green)}.srv-rail-item.care::before{background:var(--srv-gold)}
.srv-rail-label{display:block;color:var(--srv-sub);font-size:9.5px;margin-bottom:5px}
.srv-rail-item b{font-size:13px;color:var(--srv-title)}
.srv-rail-item p{font-size:10.5px;line-height:1.55;color:var(--srv-sub);margin:7px 0 0}
.srv-monthline{
  display:grid;grid-template-columns:repeat(12,minmax(45px,1fr));gap:0;overflow-x:auto;
  padding:7px 1px 12px;scroll-snap-type:x proximity
}
.srv-month-dot{position:relative;min-width:48px;text-align:center;padding-top:13px;scroll-snap-align:start}
.srv-month-dot::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--srv-line)}
.srv-month-dot:first-child::before{left:50%}.srv-month-dot:last-child::before{right:50%}
.srv-month-dot i{position:absolute;left:50%;top:0;transform:translateX(-50%);width:9px;height:9px;border-radius:50%;background:var(--srv-paper);border:2px solid var(--srv-sub)}
.srv-month-dot.open i{border-color:var(--srv-green);background:var(--srv-green)}
.srv-month-dot.care i{border-color:var(--srv-gold);background:var(--srv-gold)}
.srv-month-dot b{display:block;font-size:10px;color:var(--srv-title);white-space:nowrap}
.srv-month-dot span{display:block;margin-top:4px;font-size:8px;color:var(--srv-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srv-week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.srv-weekday{text-align:center;color:var(--srv-sub);font-size:9px;padding:3px 0}
.srv-day{aspect-ratio:1;border-bottom:1px solid var(--srv-line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.srv-day.empty{visibility:hidden}.srv-day span{font-size:11px;color:var(--srv-ink)}.srv-day i{font-size:7px;font-style:normal;color:transparent}
.srv-day.open{background:rgba(52,115,95,.08)}.srv-day.open i{color:var(--srv-green)}
.srv-day.care{background:rgba(185,90,72,.07)}.srv-day.care i{color:var(--srv-red)}
.srv-relation{position:relative;display:grid;grid-template-columns:1fr 86px 1fr;align-items:center;min-height:132px;padding:8px 0}
.srv-person,.srv-overlap{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:50%}
.srv-person{width:120px;height:120px;max-width:100%;background:var(--srv-soft);border:1px solid var(--srv-line)}
.srv-person.a{justify-self:end}.srv-person.b{justify-self:start}
.srv-overlap{position:relative;z-index:2;width:86px;height:86px;margin:0 -7px;background:var(--srv-title);color:#fff;box-shadow:0 8px 22px rgba(36,44,62,.18)}
.srv-person b,.srv-overlap b{font-size:13px}.srv-person span,.srv-overlap span{font-size:8.5px;line-height:1.35;margin-top:5px;max-width:78px;color:var(--srv-sub)}
.srv-overlap span{color:rgba(255,255,255,.68)}
.srv-note{font-size:10.5px;line-height:1.62;color:var(--srv-sub);padding:10px 2px;border-top:1px solid var(--srv-line)}
.srv-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.srv-steps>div{padding:14px 12px 13px;background:var(--srv-soft);border-top:2px solid var(--srv-line);min-width:0}
.srv-steps>div>span{display:block;color:var(--srv-gold);font:11px serif;margin-bottom:13px}
.srv-steps b{display:block;color:var(--srv-title);font-size:11.5px}
.srv-steps p{margin:6px 0 0;font-size:9.5px;line-height:1.52;color:var(--srv-sub)}

/* 구성학: 평생 초상과 시기·방위 도구를 명확히 분리 */
.srv-layers{border-top:1px solid var(--srv-line)}
.srv-layer{display:grid;grid-template-columns:44px 1fr;gap:13px;padding:18px 3px;border-bottom:1px solid var(--srv-line)}
.srv-layer>span{font:12px serif;color:var(--srv-gold);letter-spacing:1px}
.srv-layer small{display:block;font-size:9.5px;color:var(--srv-sub);margin-bottom:6px}
.srv-layer b{display:block;font-family:"Noto Serif KR",serif;color:var(--srv-title);font-size:14px;line-height:1.62}
.srv-layer em{display:inline-block;font-style:normal;font-size:8.5px;color:var(--srv-gold);margin-top:7px;padding:3px 7px;border:1px solid rgba(168,123,52,.35);border-radius:999px}
.srv-board{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:2px}
.srv-palace{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--srv-soft);border:1px solid var(--srv-line);border-radius:10px}
.srv-palace.center{background:var(--srv-title);color:#fff}.srv-palace.good{border-color:var(--srv-green);background:rgba(52,115,95,.07)}
.srv-palace.bad{border-color:var(--srv-red);background:rgba(185,90,72,.07)}.srv-palace.mine{box-shadow:inset 0 0 0 2px var(--srv-gold)}
.srv-palace>span{position:absolute;top:7px;font-size:8px;color:var(--srv-sub)}
.srv-palace.center>span{color:rgba(255,255,255,.62)}
.srv-palace>b{font-family:"Noto Serif KR",serif;font-size:12px;color:var(--srv-title)}
.srv-palace.center>b{color:#fff}.srv-palace.good>b{color:var(--srv-green)}.srv-palace.bad>b{color:var(--srv-red)}
.srv-palace>i{position:absolute;bottom:6px;font-style:normal;font-size:7px;font-weight:800;color:var(--srv-sub)}
.srv-direction{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.srv-direction>div{padding:15px 13px;border-top:2px solid var(--srv-line);background:var(--srv-soft)}
.srv-direction .good{border-color:var(--srv-green)}.srv-direction .bad{border-color:var(--srv-red)}
.srv-direction small{display:block;font-size:9px;color:var(--srv-sub)}
.srv-direction b{display:block;font-size:13px;line-height:1.45;color:var(--srv-title);margin:7px 0}
.srv-direction p{font-size:9.5px;line-height:1.5;color:var(--srv-sub);margin:0}
.srv-nine{display:grid;grid-template-columns:repeat(9,minmax(60px,1fr));overflow-x:auto;padding:10px 0 13px}
.srv-nine>div{position:relative;min-width:60px;text-align:center;padding-top:20px}
.srv-nine>div::before{content:"";position:absolute;left:0;right:0;top:8px;height:1px;background:var(--srv-line)}
.srv-nine>div:first-child::before{left:50%}.srv-nine>div:last-child::before{right:50%}
.srv-nine i{position:absolute;width:10px;height:10px;border-radius:50%;left:50%;top:3px;transform:translateX(-50%);background:var(--srv-paper);border:2px solid var(--srv-sub)}
.srv-nine .current i{width:14px;height:14px;top:1px;border-color:var(--srv-gold);background:var(--srv-gold)}
.srv-nine .open i{border-color:var(--srv-green)}.srv-nine span{display:block;font-size:9px;color:var(--srv-sub)}
.srv-nine b{display:block;font-size:8.5px;color:var(--srv-title);margin-top:5px;white-space:nowrap}
.srv-topdays{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.srv-topdays>div{position:relative;padding:16px 12px 14px;background:var(--srv-soft);border-top:2px solid var(--srv-gold)}
.srv-topdays span{font:10px serif;color:var(--srv-gold)}.srv-topdays b{display:block;color:var(--srv-title);font-size:13px;margin:10px 0 5px}
.srv-topdays p{font-size:9.5px;line-height:1.45;color:var(--srv-sub);margin:0}.srv-topdays em{position:absolute;right:9px;top:9px;font-style:normal;color:var(--srv-green);font-size:8px}
.srv-date-list{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:12px;border-top:1px solid var(--srv-line)}
.srv-date-list span{font-size:9.5px;color:var(--srv-sub);padding:9px 1px;border-bottom:1px solid var(--srv-line)}
.srv-date-list b{color:var(--srv-title)}
.srv-question{padding:20px 18px;background:var(--srv-soft);border-left:3px solid var(--srv-gold)}
.srv-question>small{display:block;color:var(--srv-sub);font-size:9px}.srv-question>b{display:block;font-family:"Noto Serif KR",serif;color:var(--srv-title);font-size:17px;line-height:1.55;margin-top:8px}
.srv-question>p{font-size:10px;color:var(--srv-gold)}
.srv-question>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.srv-question>div span{font-size:9px;padding:5px 8px;border:1px solid var(--srv-line);border-radius:999px;color:var(--srv-sub)}

/* 상세 해설: 카드 반복을 없애고 한 편의 리포트처럼 */
.srv-reading-label{display:flex;align-items:center;gap:10px;margin:27px 0 0;color:var(--srv-sub);font-size:9px;letter-spacing:1.2px}
.srv-reading-label::before,.srv-reading-label::after{content:"";height:1px;background:var(--srv-line);flex:1}
.srv-reading{margin-top:0}
.srv-md-card{margin:0;padding:20px 2px 21px;border:0;border-top:1px solid var(--srv-line);background:transparent}
.srv-md-card:first-child{border-top:0}
.srv-md-title{margin:0 0 11px;font-family:"Noto Serif KR",serif;font-size:16px;line-height:1.45;color:var(--srv-title)}
.srv-md-body{font-size:13.5px;color:var(--srv-ink);line-height:1.88}
.srv-md-body p{margin:8px 0}.srv-md-row{display:flex;gap:8px;margin:7px 0}.srv-md-dot{color:var(--srv-gold);font-weight:800;flex:0 0 auto}

@media(max-width:430px){
  .srv-cover{padding:21px 18px}.srv-cover-title{font-size:22px}.srv-cover-sub{max-width:96%}
  .srv-section-head{align-items:flex-start;flex-direction:column;gap:4px}.srv-section-head>span{text-align:left}
  .srv-rail,.srv-steps{grid-template-columns:1fr}.srv-rail-item{border-left:0;border-top:1px solid var(--srv-line)}
  .srv-rail-item:first-child{border-top:0}
  .srv-relation{grid-template-columns:1fr 64px 1fr;min-height:108px}
  .srv-person{width:94px;height:94px}.srv-overlap{width:68px;height:68px}
  .srv-person span,.srv-overlap span{font-size:7.5px;max-width:62px}
  .srv-direction,.srv-topdays{grid-template-columns:1fr}.srv-date-list{grid-template-columns:1fr}
}
@media print{
  .srv-cover,.srv-portrait-row,.srv-layer,.srv-md-card,.srv-direction>div,.srv-topdays>div{break-inside:avoid}
  .srv-nine,.srv-monthline{overflow:visible}
}
