/* ============================================================
   좋은날 · 사주 택일
   레퍼런스: buldak.com — 순백 배경, 강렬한 빨강, 형광 노랑,
   900 웨이트 대형 타이포, pill 칩. 여기에 두꺼운 검은 테두리와
   블러 없는 하드 섀도우를 얹어 키치하게 밀어붙였다.
   ============================================================ */

:root{
  --red:#E30413;
  --red-dk:#B00310;
  --yellow:#FFF200;
  --ink:#171717;
  --white:#fff;
  --cream:#FFF7E0;
  --gray:#EFECE6;
  --gray-2:#B9B3A9;
  --mute:#6E6862;

  --g-best:#E30413;
  --g-good:#FFF200;
  --g-ok:#FFFFFF;
  --g-mid:#C9C4BC;
  --g-bad:#171717;

  --bd:3px solid var(--ink);
  --bd2:2px solid var(--ink);
  --sh:5px 5px 0 var(--ink);
  --sh-sm:3px 3px 0 var(--ink);
  --r:18px;
  --maxw:1120px;
  --sans:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,
         'Malgun Gothic','Apple SD Gothic Neo',system-ui,sans-serif;
  --serif:'Nanum Myeongjo','Batang',serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  word-break:keep-all; overflow-wrap:break-word; overflow-x:hidden;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px;}
h1,h2,h3,h4,h5{margin:0; line-height:1.25; letter-spacing:-.03em; font-weight:900;}
p{margin:0;}
img{max-width:100%; display:block;}
button,input,select{font-family:inherit; font-size:inherit;}
em{font-style:normal;}
.mono{font-variant-numeric:tabular-nums;}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:var(--yellow); border-bottom:var(--bd);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; height:66px;}
.brand{display:flex; align-items:center; gap:11px;}
.brand-mark{
  width:42px; height:42px; flex:none; display:grid; place-items:center;
  background:var(--red); color:var(--white); border:var(--bd2); border-radius:12px;
  font-family:var(--serif); font-size:22px; box-shadow:var(--sh-sm);
  transform:rotate(-6deg);
}
.brand h1{font-size:22px; letter-spacing:-.045em;}
.brand p{font-size:11px; font-weight:700; letter-spacing:.02em;}
.brand .dot{color:var(--red);}
.hdr-nav{display:flex; gap:8px;}
.hdr-nav a{
  color:var(--ink); text-decoration:none; font-size:13.5px; font-weight:800;
  padding:7px 15px; border:var(--bd2); border-radius:999px; background:var(--white);
  transition:.12s;
}
.hdr-nav a:hover{background:var(--red); color:var(--white);}

/* ---------- hero ---------- */
.hero{
  background:var(--red); color:var(--white);
  border-bottom:var(--bd); padding:56px 0 0; position:relative; overflow:hidden;
}
.hero::before,.hero::after{
  content:''; position:absolute; border-radius:50%; border:var(--bd);
  background:var(--yellow); opacity:.9;
}
.hero::before{width:170px; height:170px; top:-58px; right:-40px;}
.hero::after{width:96px; height:96px; bottom:120px; left:-42px; background:var(--white);}
.hero .wrap{position:relative; z-index:2; text-align:center;}
.hero-badge{
  display:inline-block; background:var(--yellow); color:var(--ink);
  border:var(--bd2); border-radius:999px; padding:6px 17px;
  font-size:12.5px; font-weight:900; box-shadow:var(--sh-sm);
  transform:rotate(-2deg); margin-bottom:18px;
}
.hero-title{font-size:clamp(30px,6.6vw,54px); letter-spacing:-.045em;}
.hero-title em{
  color:var(--yellow);
  text-shadow:3px 3px 0 var(--ink);
}
.hero-sub{
  margin:20px auto 0; max-width:600px; font-size:15px; font-weight:600;
  line-height:1.8; opacity:.96;
}
.hero-art{
  margin:30px auto -3px; max-width:760px; padding:0 20px;
}
.hero-art img{
  width:100%; border:var(--bd); border-top-left-radius:24px; border-top-right-radius:24px;
  border-bottom:none; background:var(--white);
}

/* ---------- panel / form ---------- */
.panel{padding:44px 0 56px; background:var(--cream); border-bottom:var(--bd);}
.panel > .wrap{
  background:var(--white); border:var(--bd); border-radius:24px;
  box-shadow:var(--sh); padding:30px 26px 32px; max-width:880px;
}
.field-block{margin-bottom:26px;}
.field-label{
  display:inline-block; font-size:14px; font-weight:900; margin-bottom:12px;
  background:var(--yellow); border:var(--bd2); border-radius:999px; padding:4px 14px;
}
.sub-label{display:block; font-size:12px; font-weight:700; color:var(--mute); margin-bottom:5px;}

.purpose-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:10px;}
.purpose-grid button{
  background:var(--white); border:var(--bd); border-radius:16px;
  color:var(--ink); padding:13px 5px 11px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:7px;
  transition:.13s; font-size:13px; font-weight:800; box-shadow:var(--sh-sm);
}
.purpose-grid button .ico{
  width:46px; height:46px; display:grid; place-items:center;
  font-size:26px; line-height:1;
}
.purpose-grid button .ico img{width:100%; height:100%; object-fit:contain;}
.purpose-grid button:hover{transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--ink);}
.purpose-grid button.on{
  background:var(--red); color:var(--white);
  transform:translate(2px,2px); box-shadow:1px 1px 0 var(--ink);
}

.person-card{
  background:var(--cream); border:var(--bd2); border-radius:16px;
  padding:16px; margin-bottom:12px;
}
.person-card > h4{
  font-size:13.5px; margin-bottom:13px; display:flex; align-items:center; gap:8px;
}
.person-card > h4::before{
  content:''; width:10px; height:10px; background:var(--red);
  border:2px solid var(--ink); border-radius:50%; flex:none;
}
.row{display:flex; gap:10px; flex-wrap:wrap;}
.col{flex:1 1 150px; min-width:0;}
input[type=date],input[type=time],input[type=text],select{
  width:100%; background:var(--white); color:var(--ink);
  border:var(--bd2); border-radius:11px; font-weight:600;
  padding:10px 11px; outline:none; transition:.12s;
}
input:focus,select:focus{box-shadow:var(--sh-sm); transform:translate(-1px,-1px);}
input:disabled{background:var(--gray); color:var(--gray-2);}

.gender-toggle{display:flex; gap:6px;}
.gender-toggle button{
  flex:1; background:var(--white); border:var(--bd2); border-radius:11px;
  color:var(--ink); padding:10px 0; cursor:pointer; font-weight:800; transition:.12s;
}
.gender-toggle button.on{background:var(--red); color:var(--white);}

.unknown-time{
  margin-top:10px; font-size:12.5px; font-weight:600; color:var(--mute);
  display:flex; align-items:center; gap:7px; cursor:pointer;
}
.unknown-time input{width:auto;}

.range-row .col{flex:1 1 160px;}
.quick-range{display:flex; gap:7px; margin-top:11px; flex-wrap:wrap;}
.quick-range button{
  background:var(--white); border:var(--bd2); color:var(--ink); font-weight:800;
  border-radius:999px; padding:6px 15px; font-size:12.5px; cursor:pointer; transition:.12s;
}
.quick-range button:hover{background:var(--yellow);}

.advanced{border-top:var(--bd2); padding-top:16px; margin-bottom:22px;}
.advanced summary{
  cursor:pointer; font-size:13.5px; font-weight:800; list-style:none;
  display:flex; align-items:center; gap:6px;
}
.summary-hint{font-size:12px; font-weight:600; color:var(--mute);}
.hint{margin-top:7px; font-size:11.5px; font-weight:600; color:var(--mute); line-height:1.6;}
.hint b{font-weight:800; color:var(--ink);}
.advanced summary::-webkit-details-marker{display:none;}
.advanced[open] .chev{transform:rotate(180deg);}
.chev{display:inline-block; transition:.2s; font-size:11px;}
.adv-body{padding-top:14px;}
.check-row{display:flex; flex-direction:column; gap:10px; margin-top:16px;}
.check-row label.opt{
  display:grid; grid-template-columns:18px 1fr; gap:11px; align-items:start;
  border:var(--bd2); border-radius:13px; padding:12px 14px;
  background:var(--white); cursor:pointer; transition:.12s;
}
.check-row label.opt:hover{background:var(--cream);}
.check-row input{accent-color:var(--red); width:17px; height:17px; margin-top:2px;}
.opt b{display:block; font-size:13px; font-weight:900; margin-bottom:5px; color:var(--ink);}
.opt > span{font-size:12px; font-weight:500; color:var(--mute); line-height:1.7;}
.opt b .only{
  font-style:normal; font-size:10px; font-weight:800; margin-left:7px; vertical-align:2px;
  background:var(--yellow); border:2px solid var(--ink); border-radius:999px; padding:0 8px;
}
.opt.dim{opacity:.42;}
.adv-note{
  margin-top:13px; font-size:12px; color:var(--mute); line-height:1.7;
  background:var(--gray); border-radius:10px; padding:10px 12px;
}

.btn-main{
  width:100%; border:var(--bd); border-radius:16px; cursor:pointer;
  background:var(--red); color:var(--white);
  font-size:18px; font-weight:900; padding:17px; letter-spacing:-.03em;
  box-shadow:var(--sh); transition:.12s;
}
.btn-main:hover{background:var(--red-dk);}
.btn-main:active{transform:translate(4px,4px); box-shadow:1px 1px 0 var(--ink);}
.btn-main[disabled]{background:var(--gray-2); cursor:progress; transform:none; box-shadow:var(--sh);}
.form-error{
  margin-top:13px; background:var(--yellow); border:var(--bd2); border-radius:11px;
  padding:10px 13px; font-size:13.5px; font-weight:700; text-align:center;
}

/* ---------- result ---------- */
#result{padding-bottom:64px; background:var(--white);}
.result-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:40px 0 4px; flex-wrap:wrap;
}
.result-head h2{font-size:24px;}
.result-head h2 .sub{display:block; font-size:13px; font-weight:600; color:var(--mute); margin-top:4px; letter-spacing:0;}
.btn-ghost{
  background:var(--white); border:var(--bd2); color:var(--ink); font-weight:800;
  border-radius:999px; padding:8px 17px; font-size:13px; cursor:pointer; transition:.12s;
}
.btn-ghost:hover{background:var(--yellow);}

.section-head{
  display:flex; align-items:center; justify-content:space-between;
  margin:38px 0 16px; gap:12px; flex-wrap:wrap;
}
.section-head h3{
  font-size:20px; display:flex; align-items:center; gap:10px;
}
.section-head h3::before{
  content:''; width:14px; height:14px; background:var(--red);
  border:var(--bd2); transform:rotate(45deg); flex:none;
}
.seg{display:flex; border:var(--bd2); border-radius:999px; overflow:hidden; background:var(--white);}
.seg button{
  background:transparent; border:none; color:var(--ink); font-weight:800;
  padding:7px 16px; font-size:12.5px; cursor:pointer;
}
.seg button.on{background:var(--red); color:var(--white);}

/* 명식 */
.ms-wrap{display:grid; gap:16px; grid-template-columns:1fr;}
.ms-card{
  background:var(--white); border:var(--bd); border-radius:20px;
  padding:20px; box-shadow:var(--sh);
}
.ms-card h4{font-size:16px; margin-bottom:4px;}
.ms-meta{font-size:12.5px; font-weight:600; color:var(--mute); margin-bottom:15px;}
.pillars{display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
.pillar{
  background:var(--cream); border:var(--bd2); border-radius:13px;
  padding:10px 4px; text-align:center;
}
.pillar .pos{font-size:10.5px; font-weight:800; color:var(--mute);}
.pillar .gz{font-family:var(--serif); font-size:27px; line-height:1.2; margin:4px 0; font-weight:700;}
.pillar .kr{font-size:12px; font-weight:700;}
.pillar .ss{font-size:10px; font-weight:700; color:var(--mute); margin-top:3px;}
.pillar.day{background:var(--yellow); box-shadow:var(--sh-sm);}
.el-0{color:#1E8A4C} .el-1{color:#E30413} .el-2{color:#B8860B} .el-3{color:#5C6570} .el-4{color:#1D5FA8}

.ohaeng{display:flex; gap:6px; margin-top:15px;}
.oh-item{flex:1; text-align:center;}
.oh-bar{height:9px; border:var(--bd2); border-radius:999px; background:var(--white); overflow:hidden; margin-bottom:5px;}
.oh-bar i{display:block; height:100%;}
.oh-item span{font-size:11px; font-weight:800;}
.ms-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px;}
.tag{
  font-size:11.5px; font-weight:800; padding:3px 11px; border-radius:999px;
  border:var(--bd2); background:var(--white);
}
.tag.gold{background:var(--yellow);}
.tag.warn{background:var(--red); color:var(--white);}

/* 추천일 리스트 */
.top-list{display:grid; gap:12px;}
.day-card{
  background:var(--white); border:var(--bd); border-radius:18px;
  overflow:hidden; transition:.12s; box-shadow:var(--sh-sm);
}
.day-card:hover{transform:translate(-1px,-1px); box-shadow:5px 5px 0 var(--ink);}
.day-card.open{box-shadow:var(--sh);}
.day-head{
  display:grid; grid-template-columns:58px 1fr auto; gap:15px;
  align-items:center; padding:15px 17px; cursor:pointer;
}
.rank{
  width:58px; height:58px; border:var(--bd2); border-radius:14px; display:grid;
  place-items:center; font-weight:900; font-size:20px; line-height:1;
}
.rank small{display:block; font-size:9.5px; font-weight:800; margin-top:3px;}
.grade-best{background:var(--g-best); color:var(--white);}
.grade-good{background:var(--g-good); color:var(--ink);}
.grade-ok{background:var(--g-ok); color:var(--ink);}
.grade-mid{background:var(--g-mid); color:var(--ink);}
.grade-bad{background:var(--g-bad); color:var(--white);}
.day-main .d1{font-size:18px; font-weight:900; letter-spacing:-.035em;}
.day-main .d1 .wd{font-size:13.5px; font-weight:800; margin-left:4px;}
.day-main .d2{font-size:12.5px; font-weight:600; color:var(--mute); margin-top:3px;}
.day-main .chips{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px;}
.chip{
  font-size:11px; font-weight:800; padding:3px 10px; border-radius:999px;
  background:var(--white); border:var(--bd2);
}
.chip.g{background:var(--yellow);}
.chip.b{background:var(--ink); color:var(--white);}
.day-side{text-align:right;}
.day-side .gl{
  display:inline-block; font-size:12.5px; font-weight:900; padding:3px 12px;
  border:var(--bd2); border-radius:999px; background:var(--cream);
}
.day-side .sc{display:block; font-size:12px; font-weight:800; color:var(--mute); margin-top:5px;}
.day-body{display:none; padding:0 17px 18px; border-top:var(--bd2);}
.day-card.open .day-body{display:block;}
.reason-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px;}
.reason{border:var(--bd2); border-radius:14px; padding:13px 14px;}
.reason.good{background:#FFFDE8;}
.reason.bad{background:var(--gray);}
.reason h5{font-size:12.5px; margin-bottom:9px;}
.reason.good h5::before{content:'◎ '; color:var(--red);}
.reason.bad h5::before{content:'✕ ';}
.reason ul{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.reason li{font-size:12.5px; line-height:1.55;}
.reason li b{font-weight:900; margin-right:6px;}
.reason li span{color:var(--mute); font-weight:500;}
.body-h5{font-size:12.5px; font-weight:900; margin:18px 0 9px;}
.hour-strip{display:flex; flex-wrap:wrap; gap:6px;}
.hour-chip{
  font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px;
  border:var(--bd2); background:var(--white); color:var(--mute);
}
.hour-chip.g{background:var(--yellow); color:var(--ink); font-weight:900;}
.btn-more{
  display:block; margin:18px auto 0; background:var(--white); cursor:pointer;
  border:var(--bd); color:var(--ink); font-weight:900; box-shadow:var(--sh-sm);
  border-radius:999px; padding:11px 30px; font-size:13.5px; transition:.12s;
}
.btn-more:hover{background:var(--yellow);}

/* 출산 시진 */
.slot-list{display:grid; gap:7px;}
.slot{
  display:grid; grid-template-columns:66px 100px 1fr 44px; gap:10px;
  align-items:center; font-size:12.5px; font-weight:700; padding:8px 11px;
  border:var(--bd2); border-radius:11px; background:var(--white);
}
.slot.top{background:var(--yellow); box-shadow:var(--sh-sm);}
.slot .stime{color:var(--mute); font-variant-numeric:tabular-nums; font-weight:600;}
.slot .sbar{height:10px; border:var(--bd2); border-radius:999px; background:var(--white); overflow:hidden;}
.slot .sbar i{display:block; height:100%; background:var(--red);}
.slot .sval{text-align:right; font-weight:900; font-variant-numeric:tabular-nums;}
.baby-box{border:var(--bd2); border-radius:14px; padding:14px; background:var(--cream);}
.baby-gz{font-family:var(--serif); font-size:22px; font-weight:700; letter-spacing:.1em; margin-bottom:10px;}
.part-list{display:grid; gap:7px;}
.part{display:grid; grid-template-columns:92px 52px 1fr; gap:10px; align-items:center; font-size:12px;}
.part b{font-weight:900;}
.part em{
  font-weight:900; font-variant-numeric:tabular-nums; text-align:center;
  background:var(--white); border:2px solid var(--ink); border-radius:999px; padding:1px 0;
}
.part i{font-style:normal; color:var(--mute); font-weight:600;}

/* 달력 */
.legend{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px; font-size:12px; font-weight:800;}
.legend span{display:flex; align-items:center; gap:6px;}
.lg{width:15px; height:15px; border:var(--bd2); border-radius:5px; display:inline-block;}
.calendars{display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(296px,1fr));}
.cal{background:var(--white); border:var(--bd); border-radius:18px; padding:15px; box-shadow:var(--sh-sm);}
.cal h4{font-size:15px; margin-bottom:11px; text-align:center;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.cal-grid .wd{font-size:10.5px; font-weight:800; color:var(--mute); text-align:center; padding-bottom:4px;}
.cal-grid .wd.sun{color:var(--red);} .cal-grid .wd.sat{color:#1D5FA8;}
.cell{
  aspect-ratio:1; border-radius:8px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; font-size:12px; font-weight:700;
  background:var(--gray); border:2px solid transparent; color:var(--gray-2);
}
.cell.has{cursor:pointer; border-color:var(--ink); font-weight:900;}
.cell.has:hover{transform:scale(1.09);}
.cell small{font-size:9px; font-weight:800; line-height:1.1;}
.cell.empty{background:transparent;}

/* extra 패널 */
.extra-card{
  background:var(--white); border:var(--bd); border-radius:20px;
  padding:22px; margin-top:22px; box-shadow:var(--sh);
}
.extra-card h3{font-size:19px; margin-bottom:7px; display:flex; align-items:center; gap:10px;}
.extra-card h3 img{width:38px; height:38px; object-fit:contain;}
.extra-card .lead{font-size:13.5px; font-weight:600; color:var(--mute); margin-bottom:18px;}
.compass{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; max-width:440px; margin:0 auto;}
.dir{
  border:var(--bd2); border-radius:14px; padding:12px 6px;
  text-align:center; background:var(--white);
}
.dir .dn{font-size:11px; font-weight:800; color:var(--mute);}
.dir .sn{font-size:15px; font-weight:900; margin:4px 0 2px;}
.dir .sd{font-size:10px; font-weight:700; color:var(--mute); line-height:1.4;}
.dir.g{background:var(--yellow);}
.dir.b{background:var(--ink); color:var(--white);}
.dir.b .dn,.dir.b .sd{color:#cfcac4;}
.dir.c{background:var(--gray);}
.warn-box{
  margin-top:18px; border:var(--bd2); background:var(--cream);
  border-radius:14px; padding:14px 16px; font-size:13px; font-weight:600; line-height:1.75;
}
.warn-box.hot{background:#FFE9E9;}
.warn-box b{font-weight:900;}
.mini-table{width:100%; border-collapse:separate; border-spacing:0; font-size:12.5px; margin-top:6px;
  border:var(--bd2); border-radius:14px; overflow:hidden;}
.mini-table th,.mini-table td{border-bottom:2px solid var(--ink); padding:9px 11px; text-align:left; font-weight:600;}
.mini-table tr:last-child th,.mini-table tr:last-child td{border-bottom:none;}
.mini-table th{background:var(--gray); font-weight:900; width:130px; border-right:2px solid var(--ink);}
.mini-table td.good{background:#FFFDE8; font-weight:800;}
.mini-table td.bad{background:#FFE9E9; font-weight:800;}

/* 계산 방식 */
.method{background:var(--cream); border-top:var(--bd);}
.method > .wrap{max-width:960px; background:transparent; border:none; box-shadow:none; padding:0 20px;}
.method-title{
  font-size:26px; margin-bottom:8px; display:inline-block;
  background:var(--yellow); border:var(--bd2); border-radius:999px; padding:6px 22px;
  box-shadow:var(--sh-sm); transform:rotate(-1deg);
}
.method-lead{font-size:14px; font-weight:600; color:var(--mute); margin:14px 0 24px;}
.method-art{margin:0 0 26px; border:var(--bd); border-radius:18px; overflow:hidden; box-shadow:var(--sh);}
.method-grid{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(255px,1fr));}
.method-grid article{
  background:var(--white); border:var(--bd2); border-radius:16px; padding:17px 18px;
}
.method-grid article:nth-child(3n+1){box-shadow:var(--sh-sm);}
.method-grid h4{
  font-size:13.5px; margin-bottom:9px; display:flex; align-items:center; gap:8px;
}
.method-grid h4 .num{
  flex:none; width:23px; height:23px; display:grid; place-items:center;
  background:var(--red); color:var(--white); border-radius:50%;
  font-size:12px; font-weight:900;
}
.method-grid p{font-size:13px; font-weight:500; line-height:1.75;}
.method-grid .mono{display:block; margin-top:8px; font-size:12px; font-weight:800;
  background:var(--yellow); border:2px solid var(--ink); border-radius:8px; padding:3px 9px;}
.disclaimer{
  margin-top:24px; border:var(--bd); border-radius:18px;
  padding:18px 20px; background:var(--red); color:var(--white); box-shadow:var(--sh);
}
.disclaimer h4{font-size:15px; margin-bottom:9px;}
.disclaimer p{font-size:13px; font-weight:600; line-height:1.8;}

footer{background:var(--ink); color:#cfcac4; padding:28px 0 44px; border-top:var(--bd);}
footer p{font-size:12.5px; font-weight:600; text-align:center;}

/* ---------- 반응형 ---------- */
@media (max-width:680px){
  .hero{padding-top:40px;}
  .hero::before{width:110px; height:110px; top:-40px; right:-28px;}
  .panel{padding:32px 0 40px;}
  .panel > .wrap{padding:22px 16px 24px; border-radius:20px;}
  .purpose-grid{grid-template-columns:repeat(3,1fr);}
  .purpose-grid button{font-size:11.5px; padding:11px 3px 9px;}
  .purpose-grid button .ico{width:38px; height:38px; font-size:22px;}
  .reason-grid{grid-template-columns:1fr;}
  .day-head{grid-template-columns:50px 1fr; gap:12px; padding:13px;}
  .rank{width:50px; height:50px; font-size:17px;}
  .day-side{grid-column:1/-1; text-align:left; display:flex; gap:10px; align-items:center;}
  .day-side .sc{margin:0;}
  .slot{grid-template-columns:56px 92px 1fr 38px; gap:8px; font-size:11.5px;}
  .part{grid-template-columns:76px 46px 1fr; font-size:11.5px;}
  .hdr-nav{display:none;}
  .mini-table th{width:96px;}
}

/* ---------- 인쇄 ---------- */
@media print{
  body{background:#fff;}
  .site-header,.hero,#form,.method,footer,.btn-ghost,.btn-more,.seg,#calendars,.legend{display:none !important;}
  .ms-card,.day-card,.extra-card{box-shadow:none; break-inside:avoid;}
  .day-body{display:block !important;}
  .grade-bad{background:#fff; color:#171717;}
}
