/* ==========================================================================
   필 식단표 — DF 게시판·DF 쇼핑몰과 같은 디자인
   얇은 선 1px · 머리 2px 진한 선 · 직각 연결 분류 탭 · 46px 버튼
   포인트 색: 필 식단표 설정 → 비우면 DF 게시판 포인트 색
   ========================================================================== */
.fml{
	--fml-primary:#333; --fml-primary-hover:#222; --fml-on-primary:#fff; --fml-primary-rgb:51,51,51; --fml-radius:0px; --fml-max:1200px;
	--fml-text:#222; --fml-sub:#777; --fml-mute:#a3a3a3; --fml-line:#e5e5e5; --fml-line-strong:#222; --fml-bg-soft:#f7f7f7;
	--fml-sun:#e0312f; --fml-sat:#2f6fe0;
	max-width:var(--fml-max); margin:0 auto; color:var(--fml-text); font-size:15px; line-height:1.6; word-break:keep-all; -webkit-font-smoothing:antialiased;
}
.fml *,.fml *::before,.fml *::after{box-sizing:border-box}
.fml a{color:inherit;text-decoration:none}
.fml button{font-family:inherit}
.fml img{max-width:100%;height:auto;display:block}

/* 버튼 (DF 쇼핑몰 .dfsh-btn 과 같은 규격) */
.fml .fml-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:88px;height:46px;padding:0 22px;border:1px solid #d4d4d4;border-radius:var(--fml-radius);background:#fff;color:var(--fml-text);font-size:15px;font-weight:500;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;box-shadow:none;text-transform:none;letter-spacing:0;margin:0}
.fml .fml-btn:hover{border-color:#999}
.fml .fml-btn-sm{min-width:0;height:36px;padding:0 14px;font-size:13.5px}
.fml .fml-btn.is-on{background:var(--fml-primary);border-color:var(--fml-primary);color:var(--fml-on-primary)}
.fml .fml-btn.is-on:hover{background:var(--fml-primary-hover);border-color:var(--fml-primary-hover)}

/* 머리 — 제목 · 달 이동 · 보기 */
.fml .fml-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 0 16px;border-bottom:2px solid var(--fml-line-strong)}
.fml .fml-title{margin:0;font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--fml-text);line-height:1.35}
.fml .fml-month{display:flex;align-items:center;gap:18px}
.fml .fml-month strong{font-size:24px;font-weight:700;letter-spacing:-.02em;min-width:140px;text-align:center}
.fml .fml-nav{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #d4d4d4;border-radius:var(--fml-radius);color:#555;background:#fff;transition:border-color .15s}
.fml .fml-nav:hover{border-color:#999;color:#222}
.fml .fml-head-r{display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:wrap}
.fml .fml-views{display:inline-flex}
.fml .fml-views .fml-btn + .fml-btn{margin-left:-1px}

/* 분류 탭 (DF 게시판과 같은 직각 연결 탭) */
.fml .fml-cats{display:flex;flex-wrap:wrap;margin:24px 0 0;padding:0 0 0 1px}
.fml .fml-cats a{display:flex;align-items:center;justify-content:center;min-width:140px;height:46px;margin:0 0 -1px -1px;padding:0 22px;border:1px solid var(--fml-line);font-size:14.5px;color:#333;background:#fff;transition:background .15s}
.fml .fml-cats a:hover{background:#f7f7f7}
.fml .fml-cats a.is-on{background:#222;border-color:#222;color:#fff;position:relative;z-index:1}

/* 끼니 거르기 (DF 쇼핑몰 하위 분류와 같은 밑줄 글자) */
.fml .fml-subcats{display:flex;flex-wrap:wrap;gap:4px 22px;padding:16px 4px 0}
.fml .fml-subcats button{border:0;background:none;padding:0;margin:0;font-size:14px;color:var(--fml-sub);cursor:pointer;line-height:1.6;box-shadow:none}
.fml .fml-subcats button:hover{color:var(--fml-text)}
.fml .fml-subcats button.is-on{color:var(--fml-text);font-weight:700;text-decoration:underline;text-underline-offset:5px}

/* 월간 달력 */
.fml .fml-cal-wrap{margin-top:20px}
.fml .fml-cal{width:100%;border-collapse:collapse;table-layout:fixed;margin:0;border:0}
.fml .fml-cal th{height:44px;padding:0;border:1px solid var(--fml-line);border-top:0;background:var(--fml-bg-soft);font-size:14px;font-weight:600;color:#444;text-align:center}
.fml .fml-cal th.is-sun{color:var(--fml-sun)}
.fml .fml-cal th.is-sat{color:var(--fml-sat)}
.fml .fml-day{vertical-align:top;height:150px;padding:10px 12px 12px;border:1px solid var(--fml-line);background:#fff;text-align:left;transition:background .15s}
.fml .fml-day.is-out{background:#fcfcfc}
.fml .fml-day.has-menu{cursor:pointer}
.fml .fml-day.has-menu:hover{background:#fafafa}
.fml .fml-day.is-today{box-shadow:inset 0 0 0 2px var(--fml-primary)}
.fml .fml-date{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:#333;line-height:1;margin:0 0 10px}
.fml .fml-date em{font-style:normal;font-size:11.5px;font-weight:600;line-height:1;padding:4px 6px;background:var(--fml-primary);color:var(--fml-on-primary)}
.fml .is-sun > .fml-date{color:var(--fml-sun)}
.fml .is-sat > .fml-date{color:var(--fml-sat)}

.fml .fml-meal + .fml-meal{margin-top:10px;padding-top:10px;border-top:1px dashed var(--fml-line)}
.fml .fml-meal-name{display:inline-block;font-size:12px;font-weight:600;line-height:1;padding:4px 7px;margin:0 0 6px;border:1px solid var(--fml-primary);color:var(--fml-primary)}
.fml .fml-items{list-style:none;margin:0;padding:0}
.fml .fml-items li{margin:0;padding:0;font-size:13.5px;line-height:1.55;color:#333;list-style:none}
.fml .fml-items li::before{content:none}
.fml .fml-items sup{font-size:10px;color:var(--fml-mute);margin-left:2px;top:-.45em;vertical-align:baseline;position:relative}
.fml .fml-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--fml-sub)}
.fml .fml-kcal{font-weight:600;color:var(--fml-primary)}
.fml .fml-has-photo{display:inline-flex;align-items:center;gap:3px}

/* 끼니 거르기 적용 */
.fml[data-meal-filter] .fml-meal{display:none}
.fml[data-meal-filter="breakfast"] .fml-meal[data-meal="breakfast"],
.fml[data-meal-filter="lunch"] .fml-meal[data-meal="lunch"],
.fml[data-meal-filter="dinner"] .fml-meal[data-meal="dinner"],
.fml[data-meal-filter="snack"] .fml-meal[data-meal="snack"]{display:block}
.fml[data-meal-filter] .fml-cal .fml-meal{margin-top:0;padding-top:0;border-top:0}
.fml[data-meal-filter] .fml-row-body .fml-meal{border-left:0}
.fml[data-meal-filter] .fml-meal-name{display:none}

/* 목록 보기 */
.fml .fml-list{display:none;margin-top:20px;border-top:1px solid var(--fml-line)}
.fml.is-list .fml-cal-wrap{display:none}
.fml.is-list .fml-list{display:block}
.fml .fml-row{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--fml-line);cursor:pointer;transition:background .15s}
.fml .fml-row:hover{background:#fafafa}
.fml .fml-row.is-today{background:rgba(var(--fml-primary-rgb),.05)}
.fml .fml-row-date{padding:20px 16px;border-right:1px solid var(--fml-line);text-align:center}
.fml .fml-row-date b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.fml .fml-row-date span{display:block;margin-top:4px;font-size:13px;color:var(--fml-sub)}
.fml .fml-row.is-sun .fml-row-date b{color:var(--fml-sun)}
.fml .fml-row.is-sat .fml-row-date b{color:var(--fml-sat)}
.fml .fml-row.is-today .fml-row-date span{color:var(--fml-primary);font-weight:600}
.fml .fml-row-body{display:flex;flex-wrap:wrap;gap:0;padding:0}
.fml .fml-row-body .fml-meal{flex:1 1 200px;padding:18px 22px;margin:0;border-top:0}
.fml .fml-row-body .fml-meal + .fml-meal{border-left:1px solid var(--fml-line);border-top:0;margin:0;padding-top:18px}
.fml .fml-row-body .fml-items li{font-size:14.5px}
.fml .fml-empty{margin:0;padding:60px 0;text-align:center;color:var(--fml-mute);font-size:14.5px}

/* 아래 안내 */
.fml .fml-foot{margin-top:20px;padding:16px 18px;border:1px solid var(--fml-line);background:var(--fml-bg-soft);font-size:13px;color:var(--fml-sub)}
.fml .fml-foot p{margin:0}
.fml .fml-foot p + p{margin-top:6px}
.fml .fml-allergy b{color:#444;margin-right:10px;font-weight:600}
.fml .fml-allergy span{display:inline-block;margin-right:10px;white-space:nowrap}

/* 하루 자세히 보기 */
.fml-layer{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.45)}
.fml-layer[hidden]{display:none}
.fml-layer-box{width:100%;max-width:480px;max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:var(--fml-radius);color:var(--fml-text)}
.fml-layer-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:#fff;border-bottom:2px solid var(--fml-line-strong)}
.fml-layer-head strong{font-size:18px;font-weight:700;letter-spacing:-.02em}
.fml-layer-x{display:inline-flex;border:0;background:none;padding:4px;margin:0;cursor:pointer;color:#555;box-shadow:none}
.fml-layer-body{padding:6px 22px 22px}
.fml-layer-meal{padding:16px 0;border-bottom:1px solid var(--fml-line)}
.fml-layer-meal:last-child{border-bottom:0}
.fml-layer-meal h4{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;font-size:15px;font-weight:700;color:var(--fml-primary)}
.fml-layer-meal h4 span{font-size:13px;font-weight:600}
.fml-layer-meal img{width:100%;margin:0 0 12px;border:1px solid var(--fml-line)}
.fml-layer-meal ul{list-style:none;margin:0;padding:0}
.fml-layer-meal li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;margin:0;font-size:15px;border-bottom:1px dashed #eee;list-style:none}
.fml-layer-meal li:last-child{border-bottom:0}
.fml-layer-meal li small{font-size:12px;color:var(--fml-mute);text-align:right}

/* 태블릿 · 휴대폰 — 달력은 칸이 좁아 목록으로 */
@media (max-width:900px){
	.fml .fml-day{height:120px;padding:8px}
	.fml .fml-items li{font-size:12.5px}
}
@media (max-width:767px){
	.fml .fml-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px}
	.fml .fml-head-r{justify-content:center}
	.fml .fml-views{display:none}
	.fml .fml-cal-wrap{display:none}
	.fml .fml-list{display:block}
	.fml .fml-cats a{min-width:0;flex:1 1 33.333%;padding:0 10px;font-size:14px}
	.fml .fml-row{grid-template-columns:80px 1fr}
	.fml .fml-row-date{padding:16px 8px}
	.fml .fml-row-date b{font-size:19px}
	.fml .fml-row-body .fml-meal{flex-basis:100%;padding:14px 16px}
	.fml .fml-row-body .fml-meal + .fml-meal{border-left:0;border-top:1px dashed var(--fml-line);padding-top:14px}
}

/* 인쇄 — 식단표만 한 장에 */
@media print{
	body.fml-printing *{visibility:hidden}
	body.fml-printing .fml.is-print,body.fml-printing .fml.is-print *{visibility:visible}
	body.fml-printing .fml.is-print{position:absolute;left:0;top:0;width:100%;max-width:none}
	.fml.is-print .fml-head-r,.fml.is-print .fml-nav,.fml.is-print .fml-subcats,.fml.is-print .fml-cats a:not(.is-on),.fml.is-print .fml-list{display:none!important}
	.fml.is-print .fml-cal-wrap{display:block!important}
	.fml.is-print .fml-head{grid-template-columns:1fr auto}
	.fml.is-print .fml-day{height:auto;min-height:90px;padding:6px}
	.fml.is-print .fml-items li{font-size:10.5px;line-height:1.4}
	.fml.is-print .fml-day.is-today{box-shadow:none}
	.fml.is-print .fml-date em{display:none}
}
