
/* ==========================
   IWP Weekly Meals - Style
========================== */

.iwpwm-wrap{font-family:inherit; line-height:1.5; color:#111;}
.iwpwm-head{display:flex; gap:16px; justify-content:space-between; align-items:flex-start; margin:10px 0 14px; flex-wrap:nowrap;}
.iwpwm-title{flex:1; min-width:0;}
.iwpwm-nav{flex:0 0 auto;}
.iwpwm-title h3{margin:6px 0 4px; font-size:22px; letter-spacing:-.2px;}
.iwpwm-sub{margin:0; opacity:.7; font-size:13px;}
.iwpwm-badge{display:inline-block; font-size:12px; padding:6px 10px; border-radius:999px; background:#eef3ff; color:#1b3e9e; font-weight:700;}
.iwpwm-actions{display:flex; gap:8px; align-items:center;}

/* Week/Month navigation */
.iwpwm-nav{display:flex; gap:8px; align-items:center;}
.iwpwm-nav-btn{display:inline-flex; align-items:center; justify-content:center; height:38px; padding:0 14px; gap:8px; border-radius:14px; border:1px solid #d6dbe6; background:#fff; text-decoration:none; color:#1b2aa5; font-weight:800; font-size:15px; line-height:1; cursor:pointer; user-select:none; white-space:nowrap;}
.iwpwm-nav-btn .iwpwm-arrow{font-size:20px; line-height:1; color:currentColor;}
.iwpwm-nav-btn .iwpwm-nav-text{font-size:13px; font-weight:700; letter-spacing:-.2px; color:currentColor;}
.iwpwm-nav-btn.is-loading{opacity:.55; pointer-events:none;}

.iwpwm-nav-btn:hover{transform:translateY(-1px);}
.iwpwm-head{position:relative;}
.iwpwm-nav{position:relative; z-index:10;}


.iwpwm-btn{display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:12px; border:1px solid #d6dbe6; background:#fff; text-decoration:none; color:#111; font-weight:700; font-size:14px; cursor:pointer;}
.iwpwm-btn:hover{transform:translateY(-1px);}
.iwpwm-btn.primary{background:#1b3e9e; border-color:#1b3e9e; color:#fff;}
.iwpwm-btn.iwpwm-btn-ghost{background:#f7f8fb;}
.iwpwm-mini{display:inline-flex; align-items:center; justify-content:center; padding:8px 10px; border-radius:10px; border:1px solid #d6dbe6; background:#fff; text-decoration:none; color:#111; font-weight:700; font-size:13px; cursor:pointer;}
.iwpwm-mini.danger{border-color:#f2c1c1; background:#fff5f5; color:#b00020;}

.iwpwm-table-wrap{overflow:auto; border-radius:16px; border:1px solid #e6e9f2; box-shadow:0 8px 24px rgba(0,0,0,.05);}
.iwpwm-table{width:100%; border-collapse:separate; border-spacing:0; min-width:780px; background:#fff; table-layout:fixed;}
.iwpwm-table thead th{width:20%;}
.iwpwm-table th, .iwpwm-table td{vertical-align:top; padding:20px; border-right:1px solid #eef1f7;}
.iwpwm-table th:last-child, .iwpwm-table td:last-child{border-right:none;}
.iwpwm-table thead th{background:#4e4c89; position:relative; color:#fff;}
.iwpwm-th-top{display:flex; gap:10px; align-items:center; justify-content:space-between;}
.iwpwm-dow{font-size:18px; font-weight:900; color:#fff;}
.iwpwm-date{font-size:17px; opacity:.95; font-weight:800; color:#fff;}
.iwpwm-holiday{margin-top:10px; display:inline-flex; padding:6px 12px; border-radius:999px; background:#c62828; color:#fff; font-weight:900; font-size:13px; border:1px solid #b71c1c;}

.iwpwm-menu{font-size:20px;}
.iwpwm-menu p{margin:0 0 6px;}
.iwpwm-table td .iwpwm-cell-top{margin-bottom:14px;}
.iwpwm-empty{opacity:.6; font-weight:800; font-size:13px;}
.is-blocked{background:#fff7f7 !important; box-shadow: inset 0 0 0 3px #b1397b !important; position:relative; z-index:2;}

.iwpwm-footnote{margin-top:10px; font-size:15px; opacity:.7; padding-left:2px;}

/* Mobile cards (default hidden) */
.iwpwm-mobile{display:none; gap:12px; margin-top:12px;}
.iwpwm-mday{background:#fff; border:1px solid #e6e9f2; border-radius:18px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.04);}
.iwpwm-mhead{display:flex; justify-content:space-between; align-items:center; padding:14px 14px 12px; background:linear-gradient(135deg, #4e4c89, #6b63f2); color:#fff;}
.iwpwm-mhead .left{display:flex; gap:10px; align-items:center;}
.iwpwm-mhead .dow{font-weight:900; font-size:18px;}
.iwpwm-mhead .date{font-weight:900; font-size:18px; opacity:.95; color:#fff;}
.iwpwm-mhead .tag{display:inline-flex; padding:6px 10px; border-radius:999px; font-weight:900; font-size:12px; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.18);}
.iwpwm-mhead .tag.off{background:#c62828; color:#fff; border-color:#b71c1c;}
.iwpwm-mhead .tag.on{background:rgba(255,255,255,.2);}
.iwpwm-mhead .tag.none{background:rgba(0,0,0,.15);}
.iwpwm-mbody{padding:18px 14px 14px;}
.iwpwm-mday.is-blocked .iwpwm-mhead{background:#b1397b;}
.iwpwm-mday.is-blocked .iwpwm-mbody{background:#fff0f0;}

.iwpwm-grid{display:grid; grid-template-columns:1fr 1.2fr; gap:14px; align-items:start;}
.iwpwm-card{background:#fff; border:1px solid #e6e9f2; border-radius:16px; padding:14px; box-shadow:0 8px 24px rgba(0,0,0,.04);}
.iwpwm-card h4{margin:0 0 10px; font-size:16px; letter-spacing:-.2px;}
.iwpwm-list{display:flex; flex-direction:column; gap:10px;}
.iwpwm-row{display:flex; gap:12px; justify-content:space-between; align-items:center; padding:12px; border:1px solid #eef1f7; border-radius:14px; background:#fbfcff;}
.iwpwm-row-left{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
.iwpwm-row-date{display:flex; gap:8px; align-items:center;}
.iwpwm-row-date code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px; opacity:.7;}
.iwpwm-row-status .pill{display:inline-flex; padding:6px 10px; border-radius:999px; font-weight:900; font-size:12px;}
.pill.on{background:#e7fff0; color:#0b7a35;}
.pill.none{background:#fff7e6; color:#8a5a00;}
.pill.off{background:#fff0f0; color:#b00020;}
.iwpwm-row-actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.inline{display:inline;}

.iwpwm-form{display:flex; flex-direction:column; gap:12px;}
.iwpwm-field{display:flex; flex-direction:column; gap:8px;}
.iwpwm-field .lbl{font-weight:900; font-size:13px;}
.iwpwm-field select, .iwpwm-field textarea{
  border:1px solid #d6dbe6; border-radius:12px; padding:10px 12px; font-size:14px; outline:none; background:#fff;
}
.iwpwm-field textarea{resize:vertical;}
.iwpwm-field .hint{opacity:.7; font-size:12px;}
.iwpwm-divider{height:1px; background:#eef1f7; margin:14px 0;}

.iwpwm-toast{margin:10px 0; padding:10px 12px; border-radius:12px; font-weight:800; font-size:13px;}
.iwpwm-toast.ok{background:#e7fff0; color:#0b7a35; border:1px solid #b6f0ca;}
.iwpwm-toast.err{background:#fff0f0; color:#b00020; border:1px solid #f2c1c1;}
.iwpwm-alert{padding:12px 14px; border-radius:14px; border:1px solid #f2c1c1; background:#fff0f0; color:#b00020; font-weight:900;}

@media (max-width: 1024px){
  .iwpwm-grid{grid-template-columns:1fr;}
  .iwpwm-table{min-width:720px;}
}

@media (max-width: 768px){
  /* 모바일: 가로 스크롤/세로 줄(그라디언트) 제거 */
  .iwpwm-table-wrap{display:none !important;}
  .iwpwm-table-wrap:before,
  .iwpwm-table-wrap:after{display:none !important; opacity:0 !important;}

  .iwpwm-mobile{display:grid !important; grid-template-columns:1fr; gap:12px;}
  .iwpwm-head{align-items:flex-start;}
  .iwpwm-title h3{font-size:20px;}

  .iwpwm-nav-btn{width:36px; height:36px; border-radius:14px;}
}


/* ---- Single page mode ---- */
.iwpwm-page .iwpwm-actions{margin-left:auto;}
.iwpwm-page .iwpwm-btn[data-iwpwm-toggle]{gap:8px;}
.iwpwm-page .iwpwm-admin-panel{display:none;}
.iwpwm-page.is-open .iwpwm-admin-panel{display:block;}
.iwpwm-page.is-open .iwpwm-user-view{grid-column:1 / span 1;}
.iwpwm-page.is-open{display:block;}

@media (min-width: 1025px){
  .iwpwm-page.is-open .iwpwm-layout{
    display:grid;
    grid-template-columns: 1.1fr .9fr;
    gap:14px;
    align-items:start;
  }
  .iwpwm-page.is-open .iwpwm-user-view{grid-column:auto;}
  .iwpwm-page.is-open .iwpwm-admin-panel{position:relative;}
}


/* Holiday emphasis */
.iwpwm-table thead th.is-blocked{background:#b1397b !important; color:#fff !important;}
.iwpwm-table thead th.is-blocked .iwpwm-dow,
.iwpwm-table thead th.is-blocked .iwpwm-date{color:#fff !important;}
.iwpwm-table td.is-blocked{background:#fff0f0 !important;}
.iwpwm-table td.is-blocked .iwpwm-empty{opacity:1; font-size:16px; font-weight:700; color:#b1397b;}


/* =========================================================
   Beautiful Calendar Theme (v1.0.11)
   - Week table styled as a modern calendar
========================================================= */

.iwpwm-wrap{
  --iwpwm-bg: #f6f8ff;
  --iwpwm-card: #ffffff;
  --iwpwm-line: rgba(17,24,39,.08);
  --iwpwm-shadow: 0 12px 30px rgba(17,24,39,.08);
  --iwpwm-shadow-soft: 0 8px 20px rgba(17,24,39,.06);
  --iwpwm-radius: 20px;
}

.iwpwm-table-wrap{
  background: var(--iwpwm-bg);
  border: 1px solid rgba(17,24,39,.06);
  box-shadow: var(--iwpwm-shadow);
  border-radius: calc(var(--iwpwm-radius) + 6px);
  padding: 14px;
}

/* calendar grid look - 열 너비 균등(월~금 20%씩) */
.iwpwm-table{
  background: transparent;
  border-collapse: separate;
  border-spacing: 12px;
  min-width: 920px;
  table-layout: fixed;
}
.iwpwm-table thead th{
  width: 20%;
  box-sizing: border-box;
}
.iwpwm-table tbody td{
  width: 20%;
  box-sizing: border-box;
}

/* header cells */
.iwpwm-table thead th{
  background: linear-gradient(135deg, #3b5bfd 0%, #6a5af9 55%, #8b5cf6 100%);
  color: #fff;
  border: 0;
  border-radius: var(--iwpwm-radius);
  box-shadow: var(--iwpwm-shadow-soft);
  padding: 18px 18px 14px;
}

/* body cells */
.iwpwm-table tbody td{
  background: var(--iwpwm-card);
  border: 1px solid rgba(17,24,39,.06);
  border-radius: var(--iwpwm-radius);
  box-shadow: 0 6px 16px rgba(17,24,39,.05);
  padding: 18px;
  transition: transform .15s ease, box-shadow .15s ease;
}

.iwpwm-table tbody td:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(17,24,39,.10);
}

/* remove old separators */
.iwpwm-table th, .iwpwm-table td{
  border-right: none !important;
}

/* header typography */
.iwpwm-th-top{
  gap: 10px;
  align-items: baseline;
}
.iwpwm-dow{
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.2px;
}
.iwpwm-date{
  font-size: 14px;
  font-weight: 800;
  opacity: .95;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(255,255,255,.35);
  color: #1f2937;
}

/* holiday tag - 휴무일 지정 시 빨간 배경, 흰 글씨 */
.iwpwm-holiday{
  margin-top: 0;
  margin-left: 8px;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: #c62828;
  border: 1px solid #b71c1c;
  color: #fff;
  font-weight: 900;
  font-size: 13px;
}
.iwpwm-holiday:before{
  content: "●";
  font-size: 10px;
  opacity: .9;
}

/* meal text */
.iwpwm-menu{
  font-size: 17px;
  line-height: 1.65;
}
.iwpwm-table td .iwpwm-cell-top{
  margin-bottom: 14px;
}
.iwpwm-menu p{
  margin: 0 0 8px;
}
.iwpwm-menu p:last-child{ margin-bottom:0; }

/* empty state */
.iwpwm-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 120px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(59,91,253,.06), rgba(139,92,246,.05));
  border: 1px dashed rgba(59,91,253,.25);
  color: rgba(17,24,39,.65);
  font-weight: 900;
  font-size: 13px;
}

/* blocked day */
.iwpwm-table thead th.is-blocked{
  background: linear-gradient(135deg, #f43f5e 0%, #fb7185 55%, #f472b6 100%);
}
.iwpwm-table tbody td.is-blocked{
  background: linear-gradient(180deg, rgba(244,63,94,.05), rgba(244,114,182,.04));
  border: 1px solid rgba(244,63,94,.18);
}
.iwpwm-table tbody td.is-blocked .iwpwm-empty{
  background: rgba(244,63,94,.06);
  border-color: rgba(244,63,94,.22);
}

/* head spacing polish */
.iwpwm-head{
  margin: 14px 0 16px;
}
.iwpwm-badge{
  background: rgba(59,91,253,.10);
  color: #2743d6;
  border: 1px solid rgba(59,91,253,.14);
}

/* responsive: keep horizontal scroll but add nice fade edges */
.iwpwm-table-wrap{
  position: relative;
}
.iwpwm-table-wrap:before,
.iwpwm-table-wrap:after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width: 28px;
  pointer-events:none;
  opacity:.0;
  transition: opacity .2s ease;
}
.iwpwm-table-wrap:before{
  left:0;
  background: linear-gradient(90deg, var(--iwpwm-bg), rgba(246,248,255,0));
}
.iwpwm-table-wrap:after{
  right:0;
  background: linear-gradient(270deg, var(--iwpwm-bg), rgba(246,248,255,0));
}
@media (max-width: 860px){
  .iwpwm-table-wrap:before,
  .iwpwm-table-wrap:after{ opacity: 1; }
  .iwpwm-title h3{ font-size: 18px; }
  .iwpwm-table{ min-width: 860px; }
  .iwpwm-table thead th{ padding: 14px 14px 12px; }
  .iwpwm-table tbody td{ padding: 14px; }
}

/* Month view: cells outside current month */
.iwpwm-table td.is-out{background:#f7f7f7;color:#bbb;}
.iwpwm-table td.is-out .iwpwm-empty{color:#bbb;}

