/*! lulu 日历模块 · 参照 moonuna「发现 → 日历」的单月黄历版式
    只在首页 #viewCalendar 内生效，宽度继承 .page（与排班表一致）。 */
#viewCalendar{--gold:#f5d76e;--purple:#b07dff;--glass-strong:var(--card-2,var(--card));
  --text:var(--ink);--muted:var(--ink-2);--line:var(--line);--radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.18);max-width:100%;margin:0 auto;padding:2px 0 24px}
#viewCalendar[hidden]{display:none}
.page[data-page-view="calendar"] > :not(#viewCalendar){display:none !important}

.wnl-wrap{max-width:100%;margin:0 auto}
.wnl-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin:4px 0 14px}
.wnl-arrow{width:32px;height:32px;border-radius:9px;cursor:pointer;border:1px solid var(--line);
  background:transparent;color:var(--muted);font-size:19px;line-height:1}
.wnl-arrow:hover{color:var(--gold);border-color:var(--gold)}
.wnl-navdate{text-align:center;min-width:250px}
.wnl-navdate strong{display:block;font-size:18px;color:var(--text)}
.wnl-navdate span{font-size:12px;color:var(--muted)}

.wnl-cal{border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line);
  padding:13px 14px 10px;margin-bottom:14px;box-shadow:var(--shadow)}
.wnl-cal-head{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:9px;flex-wrap:wrap}
.wnl-cal-title{font-size:16px;font-weight:650;color:var(--text);padding:2px 10px;border-radius:8px;cursor:pointer}
.wnl-cal-title:hover{background:rgba(245,215,110,.10)}
.wnl-cal-btn{width:28px;height:28px;border-radius:8px;cursor:pointer;border:1px solid var(--line);
  background:transparent;color:var(--muted);font-size:14px;line-height:1}
.wnl-cal-btn:hover:not(:disabled){color:var(--gold);border-color:var(--gold)}
.wnl-cal-btn:disabled{opacity:.28;cursor:not-allowed}
.wnl-cal-todaybtn{width:auto;padding:0 10px;font-size:12px;margin-left:4px}
.wnl-cal-week,.wnl-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wnl-cal-week{margin-bottom:4px}
.wnl-cal-week span{text-align:center;font-size:11px;color:var(--muted);padding:4px 0}
.wnl-cal-cell{position:relative;border-radius:9px;padding:8px 2px 7px;text-align:center;cursor:pointer;
  border:1px solid transparent;min-height:62px;transition:.15s}
.wnl-cal-cell:hover{background:rgba(127,172,255,.10)}
.wnl-cal-cell.out{opacity:.24;cursor:default}
.wnl-cal-cell b{display:block;font-size:17px;line-height:1.25;color:var(--text);font-variant-numeric:tabular-nums}
.wnl-cal-cell i{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wnl-cal-wk b,.wnl-cal-wk i{color:#ff9a9a}
.wnl-cal-jieqi{color:var(--gold) !important}
.wnl-cal-fest{color:#ff9a9a !important}
.wnl-cal-today{background:rgba(245,215,110,.14);border-color:var(--gold)}
.wnl-cal-today b{color:var(--gold)}
.wnl-cal-sel{background:rgba(176,125,255,.18);border-color:var(--purple)}
.wnl-cal-dot{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;
  background:#ff8a8a;box-shadow:0 0 5px rgba(255,138,138,.65)}
/* 休假标识：整格底色 + 顶部细条 */
.wnl-cal-cell.wd-holiday{background:rgba(63,201,148,.15);border-color:rgba(63,201,148,.42)}
.wnl-cal-cell.wd-school{background:rgba(180,140,255,.16);border-color:rgba(180,140,255,.42)}
.wnl-cal-cell.wd-work{background:rgba(255,154,93,.14);border-color:rgba(255,154,93,.42)}
.wnl-cal-cell.wd-custom{background:rgba(127,172,255,.16);border-color:rgba(127,172,255,.48)}
.wnl-cal-cell.wd-holiday i,.wnl-cal-cell.wd-school i,.wnl-cal-cell.wd-work i,.wnl-cal-cell.wd-custom i{font-weight:700}
.wnl-cal-cell .wd-bar{position:absolute;left:8%;right:8%;top:0;height:2px;border-radius:2px;background:currentColor;opacity:.7}
.wnl-cal-cell.wd-holiday .wd-bar{background:#3fc994}.wnl-cal-cell.wd-school .wd-bar{background:#b48cff}
.wnl-cal-cell.wd-work .wd-bar{background:#ff9a5d}.wnl-cal-cell.wd-custom .wd-bar{background:#7facff}
.wnl-cal-cell.wd-pending{border-style:dashed}
.wnl-cal-foot{margin-top:8px;font-size:11px;color:var(--muted);text-align:center;line-height:1.8}
.wnl-cal-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-top:6px}
.wnl-cal-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1.7;white-space:nowrap}
.wnl-cal-legend-item b{color:var(--text);font-weight:600}
.wnl-lg-sq{width:9px;height:9px;border-radius:3px;display:inline-block}
.wnl-lg-holiday{background:#3fc994}.wnl-lg-school{background:#b48cff}
.wnl-lg-work{background:#ff9a5d}.wnl-lg-custom{background:#7facff}

/* 详情卡 */
.wnl-hero{display:flex;align-items:center;gap:20px;padding:18px 22px;border-radius:var(--radius);
  background:var(--glass-strong);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:14px}
.wnl-hero-day{font-size:46px;line-height:1;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}
.wnl-hero-meta{flex:1;min-width:0}
.wnl-hero-lunar{font-size:17px;color:var(--text);font-weight:650}
.wnl-hero-sub{font-size:11.5px;color:var(--muted);margin-top:3px}
.wnl-hero-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.wnl-tag{font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid var(--line);color:var(--muted)}
.wnl-tag.t-good{color:#7ee0b4;border-color:rgba(63,201,148,.5)}
.wnl-tag.t-bad{color:#ff9a9a;border-color:rgba(255,138,138,.5)}
.wnl-tag.t-fest{color:var(--gold);border-color:rgba(245,215,110,.45)}
.wnl-moon{width:46px;height:46px;flex:none;filter:drop-shadow(0 0 12px rgba(245,215,110,.45))}

.wnl-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.wnl-yiji-col{border-radius:14px;background:var(--glass-strong);border:1px solid var(--line);padding:13px 15px}
.wnl-yiji-head{font-size:13px;font-weight:700;margin-bottom:10px;color:var(--text)}
.wnl-yiji-head.good{color:#7ee0b4}.wnl-yiji-head.bad{color:#ff9a9a}
.wnl-yiji-body{display:flex;flex-wrap:wrap;gap:6px}
.wnl-yiji-item{font-size:11.5px;padding:4px 9px;border-radius:7px;background:var(--accent-soft);color:var(--ink-2)}
.wnl-detail{border-radius:14px;background:var(--glass-strong);border:1px solid var(--line);padding:14px 16px;margin-bottom:14px}
.wnl-sec-title{font-size:13px;font-weight:700;color:var(--text);margin:0 0 10px}
.wnl-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 16px}
.wnl-kv-k{font-size:11px;color:var(--muted)}
.wnl-kv-v{font-size:12.5px;color:var(--text);font-weight:600}
.wnl-holiday-box{border-left:3px solid #3fc994;padding-left:12px;margin-bottom:12px;font-size:12.5px;color:var(--ink-2)}
.wnl-holiday-box b{color:var(--text)}
.wnl-edit-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.wnl-btn{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer}
.wnl-btn:hover{border-color:var(--accent);color:var(--ink)}
.wnl-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}

/* 编辑休假面板 */
.wnl-editor[hidden]{display:none}
.wnl-editor{border-radius:14px;background:var(--glass-strong);border:1px solid var(--line);
  padding:14px 16px;margin-bottom:14px}
.wnl-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 10px}
.wnl-form label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.wnl-form input,.wnl-form select{font:12px system-ui,sans-serif;color:var(--ink);
  background:var(--card);border:1px solid var(--line);border-radius:7px;padding:7px 9px;outline:none}
.wnl-form .full{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wnl-form .chk{flex-direction:row;align-items:center;gap:6px;color:var(--ink-2)}
.wnl-hint{font-size:11px;color:var(--muted);line-height:1.6;margin-top:8px}

:root[data-theme="light"] #viewCalendar{--gold:#a8780a;--purple:#7b45c9;--glass-strong:#fff;
  --shadow:0 8px 24px rgba(20,40,80,.08)}
:root[data-theme="light"] #viewCalendar .wnl-cal-cell.wd-holiday{background:rgba(63,201,148,.13)}
:root[data-theme="light"] #viewCalendar .wnl-hero-day{color:#a8780a}
:root[data-theme="light"] #viewCalendar .wnl-cal-wk b,
:root[data-theme="light"] #viewCalendar .wnl-cal-wk i{color:#c0453c}
:root[data-theme="light"] #viewCalendar .wnl-cal-fest,
:root[data-theme="light"] #viewCalendar .wnl-cal-cell i.wnl-cal-fest{color:#c0453c}
:root[data-theme="light"] #viewCalendar .wnl-cal-jieqi,
:root[data-theme="light"] #viewCalendar .wnl-cal-cell i.wnl-cal-jieqi{color:#95690a}
:root[data-theme="light"] #viewCalendar .wnl-cal-cell i[class*="wd-"]{color:#2f5597;font-weight:700}
:root[data-theme="light"] #viewCalendar .wnl-yiji-head.good{color:#1e7a55}
:root[data-theme="light"] #viewCalendar .wnl-yiji-head.bad{color:#b23c3c}
:root[data-theme="light"] #viewCalendar .wnl-tag.t-good{color:#1e7a55}
:root[data-theme="light"] #viewCalendar .wnl-tag.t-bad{color:#b23c3c}
:root[data-theme="light"] #viewCalendar .wnl-tag.t-fest{color:#95690a}
:root[data-theme="star"] #viewCalendar{--glass-strong:rgba(7,18,42,.90);
  --shadow:0 12px 36px rgba(0,0,0,.40)}
:root[data-theme="dark"] #viewCalendar{--glass-strong:rgba(17,26,40,.94)}
@media (max-width:760px){
  .wnl-cols{grid-template-columns:1fr}
  .wnl-cal-week,.wnl-cal-grid{gap:2px}
  .wnl-cal-cell{min-height:44px;padding:4px 1px}
  .wnl-cal-cell b{font-size:13px}.wnl-cal-cell i{font-size:9px}
  .wnl-hero{gap:12px;padding:14px}.wnl-hero-day{font-size:36px}
}
