/* ============================================================
   css/panels/panels-calendar.css 鈥?鏃ョ▼ 路 浠诲姟 鍚堝苟闈㈡澘
   璁捐: 闊╃郴娉曞紡鑺辫壓 鈥?鏆栫櫧鍗＄墖/閲戣壊缁嗙嚎/鐜懓鐐圭紑/琛嚎涓枃
   绫诲悕鍏ㄩ儴 nc- 鍓嶇紑骞朵互 #nest-sub-calendar 闄愬畾浣滅敤鍩?   锛堣閬?panels-more.css 鐨?.cal-grid/.cal-day 鎾炲悕锛?   ============================================================ */

/* 闈㈡澘 = flex 鍒楋細杩斿洖鏉¤创椤躲€佸彧鏈夊唴瀹瑰尯鑷繁婊氬姩锛堜笌淇＄/鏃ヨ涓€鑷达紝娑堟帀椤堕儴缂濋殭锛?*/
#nest-sub-calendar { padding: 0; }
#nest-sub-calendar.nest-sub-panel.fullscreen {
    background: var(--bg-primary, #F8F4EF);
    overflow-y: auto; overflow-x: hidden;
    scrollbar-gutter: stable;
}
#nest-sub-calendar #nc-root {
    padding: 0 0 24px;               /* ★ 左右/顶部归零（顶部栏贴边），仅留底部滚动缓冲 —— 甲方 2026-09 */
    scrollbar-gutter: stable;
    scrollbar-width: none; -ms-overflow-style: none;
}
#nest-sub-calendar #nc-root::-webkit-scrollbar { display: none; }
/* ★ 返回栏贴边（仅日程面板）：横向铺满 + 顶部贴齐，去掉与屏幕边缘的距离 —— 甲方 2026-09 */
#nest-sub-calendar .nest-sub-back {
    padding-left: 6px; padding-right: 6px;
    padding-top: calc(2px + env(safe-area-inset-top, 0px));
    padding-bottom: 2px;
}

/* ===== 鑺卞瓧鎶ご ===== */
#nest-sub-calendar .nc-hero { text-align: center; margin: 0 0 10px; }
#nest-sub-calendar .nc-hero-en {
    font-family: 'Great Vibes', 'Cormorant Garamond', cursive;
    font-size: 26px; color: var(--accent-rose, #C9A8A8);
    line-height: 1.2; opacity: 0.85;
}
#nest-sub-calendar .nc-hero-line {
    width: 56px; height: 1px; margin: 6px auto 0;
    background: var(--gold); opacity: 0.35;
}

/* ===== 鍒嗘鍒囨崲 ===== */
#nest-sub-calendar .nc-seg {
    display: flex; width: 200px; margin: 0 auto 12px;
    border: 1px solid var(--border); border-radius: 999px;
    background: var(--input-bg); padding: 3px;
    box-shadow: var(--shadow-xs);
}
#nest-sub-calendar .nc-seg-btn {
    flex: 1; border: none; background: transparent;
    padding: 6px 0; border-radius: 999px;
    font-family: inherit; font-size: 13px; letter-spacing: 0.12em;
    color: var(--text-secondary); cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
#nest-sub-calendar .nc-seg-btn.active {
    background: var(--accent-gradient); color: #fff;
    box-shadow: var(--shadow-sm);
}
#nest-sub-calendar .nc-seg-btn:active { transform: scale(0.96); }

/* ===== 鏃ュ巻鍗?===== */
#nest-sub-calendar .nc-cal-card {
    background: var(--surface-solid); border-radius: 12px;
    padding: 14px 10px 12px;
    margin: 0 8px;                     /* ★ 顶部栏贴边，内容卡保留左右呼吸边距 —— 甲方 2026-09 */
    box-shadow: var(--shadow-xs), var(--shadow-sm);
}
#nest-sub-calendar .nc-cal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 2px; margin-bottom: 10px; position: relative;
}
#nest-sub-calendar .nc-cal-head-right {
    display: flex; align-items: center; gap: 4px;
}
/* 鏈堜唤鏂囧瓧缁濆灞呬腑 */
#nest-sub-calendar .nc-month {
    position: absolute; left: 50%; transform: translateX(-50%);
    text-align: center; pointer-events: none;
}
#nest-sub-calendar .nc-month { text-align: center; }
#nest-sub-calendar .nc-month-zh {
    display: block; font-size: 16px; font-weight: 500;
    color: var(--text-primary); letter-spacing: 0.04em;
}
#nest-sub-calendar .nc-month-en {
    display: block; font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 11px; color: var(--text-muted);
    letter-spacing: 0.08em; margin-top: 1px;
}
#nest-sub-calendar .nc-nav-btn {
    background: none; border: 1px solid var(--border);
    border-radius: 50%; width: 30px; height: 30px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: var(--text-secondary);
    transition: border-color 0.15s ease, color 0.15s ease;
}
#nest-sub-calendar .nc-nav-btn:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
#nest-sub-calendar .nc-nav-btn:active { transform: scale(0.93); }

#nest-sub-calendar .nc-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr);
    margin-bottom: 4px; text-align: center;
    border-bottom: 1px solid var(--gold-light);
    padding-bottom: 4px;
}
#nest-sub-calendar .nc-wd { font-size: 11px; color: var(--text-muted); padding: 4px 0; }

#nest-sub-calendar .nc-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
#nest-sub-calendar .nc-day {
    aspect-ratio: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 2px;
    cursor: pointer; border-radius: 10px; position: relative;
    transition: background 0.12s ease, box-shadow 0.12s ease;
}
#nest-sub-calendar .nc-day:hover { background: var(--accent-rose-light, rgba(201,168,168,0.12)); }
#nest-sub-calendar .nc-empty-cell { cursor: default; }
#nest-sub-calendar .nc-empty-cell:hover { background: transparent; }
#nest-sub-calendar .nc-day-num {
    font-size: 14px; color: var(--text-primary);
    font-family: 'Cormorant Garamond', Georgia, serif;
}
#nest-sub-calendar .nc-today { box-shadow: inset 0 0 0 1.5px var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-today .nc-day-num { font-weight: 600; color: var(--accent-rose, #C9A8A8); }
/* 宸ヤ綔鏃?浼戞伅鏃?= 鏁存牸娣¤壊搴曪紙涓庝簨浠跺渾鐐瑰交搴曞尯鍒嗭紱閫変腑鎬佷紭鍏堢骇鏇撮珮锛屽帇鍦ㄤ笂灞備粛鍙锛?*/
#nest-sub-calendar .nc-day.nc-marker-workday { background: rgba(168,184,160,0.20); }
#nest-sub-calendar .nc-day.nc-marker-restday { background: rgba(184,168,196,0.22); }
#nest-sub-calendar .nc-day.nc-selected { background: var(--accent-rose-light, rgba(201,168,168,0.18)); box-shadow: inset 0 0 0 1.5px var(--accent-rose, #C9A8A8); }

#nest-sub-calendar .nc-dots { display: flex; gap: 3px; height: 4px; }
#nest-sub-calendar .ncd { width: 4px; height: 4px; border-radius: 50%; }
#nest-sub-calendar .ncd-imp { background: var(--gold); }
#nest-sub-calendar .ncd-cmd { background: var(--accent); }
#nest-sub-calendar .ncd-ann { background: transparent; box-shadow: inset 0 0 0 1px var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .ncd-day { background: var(--accent-sage, #A8B8A0); }

/* ===== 鍥句緥锛堜簨浠跺渾鐐?+ 宸ヤ綔鏃?浼戞伅鏃ユ暣鏍兼贰鑹插簳锛?===== */
#nest-sub-calendar .nc-legend {
    display: flex; align-items: center; flex-wrap: wrap; gap: 5px 10px;
    margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--gold-light);
}
#nest-sub-calendar .nc-legend-title { font-size: 10px; color: var(--text-muted); }
#nest-sub-calendar .nc-lg-item { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--text-secondary); }
/* 鍥句緥鑹插潡鍚屾椂琚棩鍘嗗浘渚嬩笌甯姪闈㈡澘浣跨敤锛堝府鍔╂诞灞傛寕鍦?#app 涓嬶紝鏁呬笉鍐欐浣滅敤鍩燂級 */
.nc-lg-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; vertical-align: middle; }
.nc-lg-imp { background: var(--gold); }
.nc-lg-ann { background: transparent; box-shadow: inset 0 0 0 1px var(--accent-rose, #C9A8A8); }
.nc-lg-day { background: var(--accent-sage, #A8B8A0); }
.nc-lg-swatch { display: inline-block; width: 11px; height: 11px; border-radius: 3px; vertical-align: middle; }
.nc-lg-work { background: rgba(168,184,160,0.55); }
.nc-lg-rest { background: rgba(184,168,196,0.55); }

/* ===== 銆岃浠栬褰曟棩绋嬨€嶅紑鍏筹紙鎸叆鏃ョ▼鐣岄潰锛?===== */
#nest-sub-calendar .nc-autorecord-row {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    background: var(--surface-solid); border: 1px solid var(--border); border-radius: 10px;
    padding: 9px 12px; margin-bottom: 10px; box-shadow: var(--shadow-xs);
}
#nest-sub-calendar .nc-autorecord-label { font-size: 13px; color: var(--text-primary); }
#nest-sub-calendar .nc-autorecord-hint { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }
/* 娆＄骇銆岀洿鎺ヨ褰曘€嶅紑鍏筹細鏇磋交閲忥紝鎬诲紑鍏冲叧鎺夋椂缃伆涓嶅彲鐐?*/
#nest-sub-calendar .nc-autorecord-row-sub {
    background: transparent; border: none; box-shadow: none;
    padding: 4px 10px; margin-bottom: 8px; margin-top: -4px;
    border-bottom: 1px solid var(--gold-light);
}
#nest-sub-calendar .nc-autorecord-row-sub .nc-autorecord-label { font-size: 12px; color: var(--text-secondary); }
#nest-sub-calendar .nc-autorecord-row-sub.nc-disabled { opacity: 0.5; }
#nest-sub-calendar .nc-autorecord-row-sub.nc-disabled .ck-switch { pointer-events: none; }

/* ===== 顶部右上角：设置 + 帮助按钮（吸在返回栏右侧）===== */
#nest-sub-calendar .nc-cal-top-actions {
    margin-left: auto; display: flex; align-items: center; gap: 6px;
}
#nest-sub-calendar .nc-top-btn {
    width: 30px; height: 30px; border-radius: 50%;
    border: 1px solid var(--border); background: transparent;
    color: var(--text-secondary); cursor: pointer; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}
#nest-sub-calendar .nc-top-btn:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
#nest-sub-calendar .nc-top-btn:active { transform: scale(0.92); }
#nest-sub-calendar .nc-top-help { font-size: 15px; font-weight: 700; font-family: 'Cormorant Garamond', Georgia, serif; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-top-btn { color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-top-btn:hover { color: var(--accent-rose); }

/* ===== 日程记录设置小面板（把两行大开关收进来，从右上角弹出）===== */
.nc-cal-settings-overlay {
    position: absolute; inset: 0; z-index: 2600;
    pointer-events: none;
}
.nc-cal-settings-overlay.show { pointer-events: auto; }
.nc-cal-settings-backdrop {
    position: absolute; inset: 0; background: rgba(30,24,20,0.26);
    opacity: 0; transition: opacity 0.2s ease;
}
.nc-cal-settings-overlay.show .nc-cal-settings-backdrop { opacity: 1; }
.nc-cal-settings-panel {
    position: absolute; top: max(64px, env(safe-area-inset-top, 0px)); right: 12px;
    width: min(88%, 320px);
    background: var(--surface-solid); border: 1px solid var(--border);
    border-radius: 14px; box-shadow: var(--shadow-md), var(--shadow-sm);
    padding: 14px 14px 8px;
    transform: translateY(-8px); opacity: 0;
    transition: transform 0.22s cubic-bezier(0.22,0.61,0.36,1), opacity 0.2s ease;
}
.nc-cal-settings-overlay.show .nc-cal-settings-panel { transform: translateY(0); opacity: 1; }
.nc-cs-head { padding-bottom: 8px; margin-bottom: 6px; border-bottom: 1px solid var(--gold-light); }
.nc-cs-title { font-size: 13px; font-weight: 600; color: var(--text-primary); letter-spacing: 0.02em; }
.nc-cs-row {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 9px 0; border-bottom: 1px solid var(--border-faint);
}
.nc-cs-row-sub { padding-bottom: 10px; border-bottom: none; }
.nc-cs-row-sub.nc-disabled { opacity: 0.5; }
.nc-cs-row-sub.nc-disabled .ck-switch { pointer-events: none; }
.nc-cal-settings-panel .nc-autorecord-text { flex: 1; }
.nc-cal-settings-panel .nc-autorecord-label { font-size: 13px; color: var(--text-primary); line-height: 1.3; }
.nc-cal-settings-panel .nc-autorecord-hint { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ===== 褰撴棩璇︽儏鍗?===== */
#nest-sub-calendar .nc-day-detail {
    margin: 14px 8px 0; background: var(--surface-solid);
    border-radius: 12px; padding: 14px 14px 12px;
    box-shadow: var(--shadow-xs), var(--shadow-sm);
}
#nest-sub-calendar .nc-dd-head {
    display: flex; align-items: baseline; gap: 8px;
    padding-bottom: 8px; margin-bottom: 10px;
    border-bottom: 1px solid var(--gold-light);
}
#nest-sub-calendar .nc-dd-date { font-size: 15px; font-weight: 500; color: var(--text-primary); }
#nest-sub-calendar .nc-dd-week { font-size: 11px; color: var(--text-muted); }
/* 当日清单顶部图例：绿勾=标记完成 / 灰圆=放弃 */
#nest-sub-calendar .nc-dd-legend { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
#nest-sub-calendar .nc-dd-legend-item { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; color: var(--text-muted); letter-spacing: 0.02em; }
#nest-sub-calendar .nc-dd-legend-done svg { color: var(--accent-sage, #A8B8A0); }
#nest-sub-calendar .nc-dd-legend-fail svg { color: var(--text-muted); }

#nest-sub-calendar .nc-add-form { margin-bottom: 12px; }
#nest-sub-calendar .nc-add-input {
    width: 100%; box-sizing: border-box;
    border: 1px solid var(--border); border-radius: 8px;
    padding: 8px 12px; font-family: inherit; font-size: 13px;
    background: var(--input-bg); color: var(--text-primary); outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#nest-sub-calendar .nc-add-input:focus {
    border-color: var(--accent-rose, #C9A8A8);
    box-shadow: 0 0 0 3px var(--accent-rose-light, rgba(201,168,168,0.12));
}
#nest-sub-calendar .nc-add-row { display: flex; gap: 6px; margin-top: 6px; align-items: center; }
#nest-sub-calendar .nc-add-sel {
    flex: 1; border: 1px solid var(--border); border-radius: 8px;
    padding: 7px 6px; font-family: inherit; font-size: 12px;
    background: var(--input-bg); color: var(--text-secondary);
}
#nest-sub-calendar .nc-add-time {
    width: 72px; flex-shrink: 0; border: 1px solid var(--border); border-radius: 8px;
    padding: 7px 4px; font-family: 'SF Mono', 'Consolas', monospace; font-size: 12px;
    background: var(--input-bg); color: var(--text-secondary);
    text-align: center; outline: none;
}
#nest-sub-calendar .nc-add-time:focus { border-color: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-add-btn {
    width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%;
    border: none; background: var(--accent-gradient); color: #fff;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-sm); transition: transform 0.15s ease;
}
#nest-sub-calendar .nc-add-btn:active { transform: scale(0.93); }

#nest-sub-calendar .nc-evt {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 10px; border-radius: 8px;
    background: var(--card-bg); border: 1px solid var(--border);
    margin-bottom: 6px;
    cursor: grab; touch-action: pan-y; user-select: none;
    transition: background 0.16s ease, box-shadow 0.16s ease, opacity 0.16s ease;
}
#nest-sub-calendar .nc-evt.dragging { opacity: 0.5; cursor: grabbing; box-shadow: var(--shadow-sm); }
#nest-sub-calendar .nc-evt.nsb-vl-src { opacity: 0.35; cursor: grabbing; }
#nest-sub-calendar .nc-evt-body { cursor: pointer; }
#nest-sub-calendar .nc-evt-done { opacity: 0.5; }
#nest-sub-calendar .nc-evt-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
#nest-sub-calendar .nc-evt .ncd-ann { box-shadow: inset 0 0 0 1.5px var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-evt-title { flex: 1; font-size: 13px; color: var(--text-primary); }
#nest-sub-calendar .nc-evt-time {
    font-size: 11px; color: var(--text-muted);
    font-family: 'SF Mono', 'Consolas', monospace;
}
#nest-sub-calendar .nc-evt-btn {
    background: none; border: none; cursor: pointer; padding: 4px;
    border-radius: 50%; display: flex; align-items: center;
    transition: color 0.15s ease;
}
#nest-sub-calendar .nc-evt-check { color: var(--accent-sage, #A8B8A0); }
#nest-sub-calendar .nc-evt-del { color: var(--text-muted); }
#nest-sub-calendar .nc-evt-del:hover { color: var(--danger); }

/* ===== 绌虹姸鎬侊紙鑺卞瓧澶ф爣棰?+ 涓枃鍓锛?===== */
#nest-sub-calendar .nc-empty { text-align: center; padding: 20px 8px; }
#nest-sub-calendar .nc-empty-en {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 17px; color: var(--text-muted); opacity: 0.8;
}
#nest-sub-calendar .nc-empty-zh { font-size: 12px; color: var(--text-muted); margin-top: 6px; }

/* ===== 浠诲姟椤?===== */
#nest-sub-calendar .nc-task-toolbar {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px;
}
#nest-sub-calendar .nc-task-toolbar-right {
    display: flex; align-items: center; gap: 6px;
}
#nest-sub-calendar .nc-btn-sync {
    padding: 6px 10px; font-size: 10px; letter-spacing: 0.02em; opacity: 0.45;
}
#nest-sub-calendar .nc-btn-sync:hover { opacity: 1; }
#nest-sub-calendar .nc-btn {
    border-radius: 999px; padding: 7px 16px; font-family: inherit;
    font-size: 13px; cursor: pointer; letter-spacing: 0.02em;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
#nest-sub-calendar .nc-btn:active { transform: scale(0.96); }
#nest-sub-calendar .nc-btn-primary {
    border: none; background: var(--accent-gradient); color: #fff;
    box-shadow: var(--shadow-sm);
}
#nest-sub-calendar .nc-btn-ghost {
    border: 1px solid var(--border); background: transparent;
    color: var(--text-secondary);
}
#nest-sub-calendar .nc-btn-ghost:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
#nest-sub-calendar .nc-sync-status { font-size: 10px; color: var(--text-muted); }
#nest-sub-calendar .nc-sync-status.ok { color: var(--accent-sage, #A8B8A0); }
#nest-sub-calendar .nc-sync-status.warn { color: var(--danger); }

/* 浠诲姟鍒楄〃瑁呴グ鎶ご */
#nest-sub-calendar .nc-task-deco {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px; padding: 0 4px;
}
#nest-sub-calendar .nc-task-deco-en {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 12px; color: var(--text-muted);
    letter-spacing: 0.04em; opacity: 0.7;
}
#nest-sub-calendar .nc-task-deco-line {
    flex: 1; height: 0.5px;
    background: linear-gradient(90deg, rgba(196,168,106,0.25), transparent 70%);
}
#nest-sub-calendar .nc-task-deco-count {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 12px; color: var(--text-muted);
}

/* 浠诲姟鍗＄墖 */
#nest-sub-calendar .nc-task-card {
    display: flex; align-items: flex-start; gap: 0;
    background: var(--surface-solid); border-radius: 12px;
    padding: 14px 14px 12px; margin-bottom: 10px;
    box-shadow: var(--shadow-xs), var(--shadow-sm);
    position: relative; overflow: hidden;
    transition: box-shadow 0.2s ease, transform 0.15s ease;
}
#nest-sub-calendar .nc-task-card:hover {
    box-shadow: var(--shadow-xs), var(--shadow-md);
}
#nest-sub-calendar .nc-task-done,
#nest-sub-calendar .nc-task-cancelled { opacity: 0.5; }
#nest-sub-calendar .nc-task-bar {
    width: 3px; align-self: stretch; border-radius: 2px; flex-shrink: 0;
    margin-right: 12px; background: var(--task-bar, var(--gold));
    transition: background 0.3s ease;
}
#nest-sub-calendar .nc-task-main { flex: 1; min-width: 0; }
#nest-sub-calendar .nc-task-title {
    font-size: 14px; color: var(--text-primary); font-weight: 500;
    margin-bottom: 6px; word-break: break-all; letter-spacing: 0.02em;
}
#nest-sub-calendar .nc-task-meta {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    font-size: 11px; color: var(--text-muted);
}
#nest-sub-calendar .nc-meta-item { display: flex; align-items: center; gap: 3px; }
#nest-sub-calendar .nc-meta-deadline { color: var(--text-secondary); }
#nest-sub-calendar .nc-meta-countdown { color: var(--accent-rose); font-family: 'SF Mono','Consolas',monospace; font-size: 10px; }
#nest-sub-calendar .nc-badge {
    display: inline-block; padding: 2px 8px; border-radius: 999px;
    font-size: 10px; letter-spacing: 0.06em;
    border: 0.5px solid var(--border); color: var(--text-secondary);
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-badge-pending { border-color: var(--gold); color: var(--gold-dark, #A89050); background: rgba(196,168,106,0.06); }
#nest-sub-calendar .nc-badge-active { border-color: var(--accent-rose); color: var(--accent-rose); background: rgba(201,168,168,0.06); }
#nest-sub-calendar .nc-badge-done { border-color: var(--accent-sage, #A8B8A0); color: #7a9a6a; background: rgba(168,184,160,0.06); }
#nest-sub-calendar .nc-badge-longterm { border-color: var(--lavender, #B8A8C4); color: #8a7a94; background: rgba(184,168,196,0.06); font-family: 'Playfair Display', Georgia, serif; font-style: italic; }
#nest-sub-calendar .nc-badge-overdue-count { border-color: #c09080; color: #c09080; background: rgba(200,160,140,0.08); }
#nest-sub-calendar .nc-badge-cancelled { border-color: var(--border); color: var(--text-muted); }
#nest-sub-calendar .nc-badge-overdue {
    border-color: #c09080; color: #c09080; background: rgba(200,160,140,0.08);
}
#nest-sub-calendar .nc-task-rp {
    margin-top: 6px; padding-left: 0; font-size: 11px;
    color: var(--text-secondary); display: flex; align-items: center; gap: 5px;
}
#nest-sub-calendar .nc-task-rp-dot {
    width: 4px; height: 4px; border-radius: 50%; flex-shrink: 0;
}
#nest-sub-calendar .nc-rp-reward .nc-task-rp-dot { background: var(--sage, #A8B8A0); }
#nest-sub-calendar .nc-rp-punish .nc-task-rp-dot { background: var(--accent-rose, #C9A8A8); }
/* 瓒呮椂浠诲姟鍗＄墖 */
#nest-sub-calendar .nc-task-overdue {
    background: linear-gradient(135deg, rgba(200,160,140,0.04), transparent 60%);
}
#nest-sub-calendar .nc-overdue-min {
    color: #c09080; font-weight: 500;
}

/* 浠诲姟鎿嶄綔鍖?*/
#nest-sub-calendar .nc-task-actions {
    display: flex; align-items: center; gap: 6px;
    margin-top: 10px; padding-top: 0; border-top: none;
}
#nest-sub-calendar .nc-task-main-btn {
    padding: 5px 12px; border-radius: 999px; border: 0.5px solid;
    background: transparent; font-family: inherit; font-size: 11px;
    cursor: pointer; letter-spacing: 0.04em; transition: all 0.25s ease;
}
#nest-sub-calendar .nc-task-main-btn:active { transform: scale(0.95); }
#nest-sub-calendar .nc-main-done {
    color: #8aaa7a; border-color: rgba(160,190,150,0.5);
}
#nest-sub-calendar .nc-main-done:hover { background: rgba(160,190,150,0.08); }
#nest-sub-calendar .nc-main-outcome {
    color: #c09080; border-color: rgba(200,160,140,0.5);
}
#nest-sub-calendar .nc-main-outcome:hover { background: rgba(200,160,140,0.08); }
#nest-sub-calendar .nc-task-outcome-tag {
    font-size: 10px; padding: 2px 8px; border-radius: 999px;
    letter-spacing: 0.04em;
}
#nest-sub-calendar .nc-ot-success { color: #8aaa7a; background: rgba(160,190,150,0.1); }
#nest-sub-calendar .nc-ot-fail { color: #b09090; background: rgba(190,160,150,0.1); }

/* 鍙偣鍑荤姸鎬佸窘绔?*/
#nest-sub-calendar .nc-badge-tap { cursor: pointer; user-select: none; }
#nest-sub-calendar .nc-badge-tap:hover { opacity: 0.75; }

/* 鐘舵€侀€夋嫨寮瑰嚭 */
#nest-sub-calendar .nc-status-pop {
    position: absolute; z-index: 100;
    background: var(--surface-solid); border-radius: 10px;
    box-shadow: var(--shadow-md); padding: 4px 0;
    min-width: 90px; animation: ncPopIn 0.2s ease;
}
@keyframes ncPopIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
#nest-sub-calendar .nc-sp-opt {
    padding: 8px 16px; font-size: 12px; cursor: pointer; letter-spacing: 0.04em;
    color: var(--text-secondary); transition: background 0.15s ease;
}
#nest-sub-calendar .nc-sp-opt:hover { background: rgba(200,160,140,0.08); color: var(--text-primary); }

/* icon鎸夐挳 */
#nest-sub-calendar .nc-icon-btn {
    background: none; border: 1px solid var(--border); border-radius: 50%;
    width: 28px; height: 28px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--text-muted); opacity: 0.5;
    transition: border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}
#nest-sub-calendar .nc-icon-btn:hover { border-color: var(--accent-rose); color: var(--accent-rose); opacity: 1; }
#nest-sub-calendar .nc-icon-danger:hover { border-color: #c09080; color: #c09080; }

/* ===== 甯姪闈㈡澘 ===== */
.nc-help-overlay {
    position: absolute; inset: 0; z-index: 2500;
    display: flex; align-items: flex-end; justify-content: center;
    opacity: 0; transition: opacity 0.3s ease;
}
.nc-help-overlay.visible { opacity: 1; }
.nc-help-backdrop {
    position: absolute; inset: 0; background: rgba(30,26,24,0.25);
    backdrop-filter: blur(2px);
}
.nc-help-card {
    position: relative; width: 100%; max-width: 480px;
    max-height: 72vh; background: var(--surface-solid);
    border-radius: 20px 20px 0 0; padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
    box-shadow: var(--shadow-lg); overflow-y: auto;
    animation: ncHelpUp 0.35s cubic-bezier(0.22,0.61,0.36,1);
}
@keyframes ncHelpUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}
.nc-help-card-inner { max-width: 400px; margin: 0 auto; }
.nc-help-close {
    position: absolute; top: 16px; right: 16px;
    width: 32px; height: 32px; border-radius: 50%;
    border: 0.5px solid var(--border); background: var(--surface-solid);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    color: var(--text-muted); transition: all 0.2s ease;
}
.nc-help-close:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
.nc-help-hero { text-align: center; margin-bottom: 20px; }
.nc-help-hero-en {
    font-family: 'Playfair Display', 'Georgia', serif; font-style: italic;
    font-size: 22px; color: var(--accent-rose); letter-spacing: 0.02em;
}
.nc-help-hero-zh {
    font-size: 14px; color: var(--text-primary); letter-spacing: 0.08em;
    margin-top: 4px; font-weight: 500;
}
.nc-help-floral { margin-top: 8px; display: flex; justify-content: center; color: var(--gold); }
.nc-help-body { padding: 0 4px; }
.nc-help-section { margin-bottom: 18px; }
.nc-help-hd {
    font-size: 12px; font-weight: 500; color: var(--text-primary);
    letter-spacing: 0.06em; margin-bottom: 8px;
    padding-left: 8px; border-left: 2px solid var(--accent-rose);
}
.nc-help-row {
    font-size: 12px; color: var(--text-secondary); padding: 4px 0 4px 8px;
    display: flex; align-items: center; gap: 8px;
}
.nc-help-text {
    font-size: 11px; color: var(--text-secondary); line-height: 1.7;
    padding: 2px 0 6px 8px;
}
.nc-help-mono {
    font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 10px; color: var(--text-muted);
    background: rgba(180,160,140,0.08); padding: 1px 5px; border-radius: 3px;
}
.nc-help-badge {
    display: inline-block; padding: 1px 8px; border-radius: 999px;
    font-size: 10px; letter-spacing: 0.04em; border: 0.5px solid;
    flex-shrink: 0;
}
.nc-help-bd-pending { border-color: var(--gold); color: var(--gold-dark, #A89050); }
.nc-help-bd-active { border-color: var(--accent-rose); color: var(--accent-rose); }
.nc-help-bd-done { border-color: #A0BE96; color: #8aaa7a; }
.nc-help-bd-overdue { border-color: #c09080; color: #c09080; }
.nc-help-bd-cancelled { border-color: var(--border); color: var(--text-muted); }
.nc-help-dot {
    width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
}

/* ===== 缂栬緫鎶藉眽锛堝簳閮ㄥ脊鍑猴紝鐩栬繃鍏ㄥ睆瀛愰潰鏉?z1500锛?===== */
#nest-sub-calendar .nc-modal {
    position: fixed; inset: 0; z-index: 1600;
    display: flex; align-items: flex-end; justify-content: center;
}
#nest-sub-calendar .nc-modal-mask {
    position: absolute; inset: 0; background: rgba(30, 26, 24, 0.35);
    backdrop-filter: blur(2px);
}
#nest-sub-calendar .nc-modal-body {
    position: relative; width: 100%; max-width: 480px;
    max-height: 82vh; overflow-y: auto; box-sizing: border-box;
    background: var(--surface-solid); border-radius: 16px 16px 0 0;
    padding: 16px 18px calc(18px + env(safe-area-inset-bottom, 0px));
    box-shadow: var(--shadow-md);
}
#nest-sub-calendar .nc-modal-title {
    text-align: center; font-size: 15px; font-weight: 500;
    color: var(--text-primary); letter-spacing: 0.06em;
    padding-bottom: 10px; margin-bottom: 12px;
    border-bottom: 1px solid var(--gold-light);
}
#nest-sub-calendar .nc-field {
    display: block; font-size: 11px; color: var(--text-muted);
    margin: 10px 0 4px; letter-spacing: 0.04em;
}
#nest-sub-calendar .nc-input {
    width: 100%; box-sizing: border-box;
    border: 1px solid var(--border); border-radius: 8px;
    padding: 8px 12px; font-family: inherit; font-size: 13px;
    background: var(--input-bg); color: var(--text-primary); outline: none;
    margin-bottom: 2px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#nest-sub-calendar .nc-input:focus {
    border-color: var(--accent-rose, #C9A8A8);
    box-shadow: 0 0 0 3px var(--accent-rose-light, rgba(201,168,168,0.12));
}
#nest-sub-calendar .nc-input + .nc-input { margin-top: 6px; }
#nest-sub-calendar .nc-field-row { display: flex; gap: 10px; }
#nest-sub-calendar .nc-field-col { flex: 1; min-width: 0; }
#nest-sub-calendar .nc-sec-label {
    font-size: 12px; color: var(--text-secondary); font-weight: 500;
    margin: 14px 0 6px; padding-bottom: 4px;
    border-bottom: 1px solid var(--gold-light); letter-spacing: 0.08em;
}
#nest-sub-calendar .nc-modal-actions {
    display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px;
}

/* ===== 截止时间：点选「日期 + 时间」小窗（2028 替换原手打小框） =====
   挂进编辑抽屉容器（.nc-modal-body）而非 #app：抽屉是全屏层（z1500），挂外面会被盖住。
   日期选择器面板（.dp-overlay 定位在 z2100）同样挂进这里，所以两个浮层的定位基准都改成抽屉。 */
#nest-sub-calendar .nc-modal-body { position: relative; }
#nest-sub-calendar .nc-modal-body .dp-overlay { position: absolute; inset: 0; z-index: 2100; }

#nest-sub-calendar .nc-td-overlay,
#nest-sub-calendar .nc-tp-overlay {
    position: absolute; inset: 0; z-index: 2150;
    background: rgba(30, 24, 18, 0.42);
    display: flex; align-items: center; justify-content: center;
    animation: ncTdIn 0.18s ease;
}
#nest-sub-calendar .nc-tp-overlay { z-index: 2160; }
@keyframes ncTdIn { from { opacity: 0; } to { opacity: 1; } }

#nest-sub-calendar .nc-td-card {
    width: 280px; max-width: calc(100% - 44px);
    box-sizing: border-box;
    background: var(--surface-solid, #FFFFFF);
    border: 1px solid rgba(196, 168, 106, 0.38);
    border-radius: 16px;
    box-shadow: 0 14px 44px rgba(60, 40, 30, 0.2);
    padding: 18px 16px 14px;
    animation: ncTdCardIn 0.26s cubic-bezier(0.32, 0.72, 0, 1);
}
@keyframes ncTdCardIn {
    from { opacity: 0; transform: translateY(10px) scale(0.98); }
    to   { opacity: 1; transform: none; }
}
#nest-sub-calendar .nc-td-title {
    display: flex; align-items: baseline; justify-content: center; gap: 8px;
    margin-bottom: 14px;
}
#nest-sub-calendar .nc-td-title-en {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 16px; letter-spacing: 0.06em;
    color: var(--gold, #C4A86A);
}
#nest-sub-calendar .nc-td-title-zh {
    font-size: 11px; letter-spacing: 0.18em; color: var(--text-muted);
}
#nest-sub-calendar .nc-td-step { display: flex; gap: 8px; }
#nest-sub-calendar .nc-td-cell {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column; align-items: center; gap: 5px;
    padding: 12px 6px 10px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--input-bg, rgba(250,247,243,0.7));
    cursor: pointer;
    transition: border-color 0.16s ease, transform 0.12s ease, box-shadow 0.16s ease;
}
#nest-sub-calendar .nc-td-cell:active { transform: scale(0.97); }
#nest-sub-calendar .nc-td-cell:hover { border-color: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-td-label { font-size: 10.5px; letter-spacing: 0.14em; color: var(--text-muted); }
#nest-sub-calendar .nc-td-val {
    font-size: 15px; letter-spacing: 0.02em; color: var(--text-muted);
    font-family: 'Cormorant Garamond', Georgia, serif;
}
#nest-sub-calendar .nc-td-val.set { color: var(--text-primary); }
#nest-sub-calendar .nc-td-hint {
    font-size: 11px; line-height: 1.7; color: var(--text-muted);
    text-align: center; margin: 12px 2px 4px;
}
#nest-sub-calendar .nc-td-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
#nest-sub-calendar .nc-td-foot .nc-btn.disabled { opacity: 0.45; pointer-events: none; }

/* ===== 濂栨儵鍒楄〃 ===== */
#nest-sub-calendar .nc-rp-list { display: flex; flex-direction: column; gap: 10px; }

/* 瑁呴グ鎶ご */
#nest-sub-calendar .nc-rp-deco {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px; padding: 0 4px;
}
#nest-sub-calendar .nc-rp-deco-en {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 12px; color: var(--text-muted);
    letter-spacing: 0.04em; opacity: 0.7; white-space: nowrap;
}
#nest-sub-calendar .nc-rp-deco-line {
    flex: 1; height: 0.5px;
    background: linear-gradient(90deg, rgba(196,168,106,0.25), transparent 70%);
}

/* 缁熻鏉?*/
#nest-sub-calendar .nc-rp-summary {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 14px; margin-bottom: 12px;
    background: var(--surface-solid); border-radius: 10px;
    box-shadow: var(--shadow-xs);
}
#nest-sub-calendar .nc-rp-stat {
    font-size: 11px; color: var(--text-secondary); letter-spacing: 0.03em;
}
#nest-sub-calendar .nc-rp-stat em {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: normal; font-size: 15px; color: var(--text-primary);
    margin-right: 2px;
}
#nest-sub-calendar .nc-rp-stat-div {
    width: 1px; height: 12px; background: rgba(180,160,140,0.2); flex-shrink: 0;
}

/* 濂栨儵鍗＄墖 */
#nest-sub-calendar .nc-rp-card {
    background: var(--surface-solid); border-radius: 12px;
    padding: 14px 14px 12px; margin-bottom: 10px;
    box-shadow: var(--shadow-xs), var(--shadow-sm);
    display: flex; gap: 0; overflow: hidden;
    transition: box-shadow 0.2s ease;
}
#nest-sub-calendar .nc-rp-card:hover {
    box-shadow: var(--shadow-xs), var(--shadow-md);
}
/* 宸︿晶鑹叉潯 */
#nest-sub-calendar .nc-rp-bar {
    width: 3px; align-self: stretch; border-radius: 2px; flex-shrink: 0;
    margin-right: 12px; background: var(--rp-tint, var(--gold));
    transition: background 0.3s ease;
}
#nest-sub-calendar .nc-rp-body { flex: 1; min-width: 0; }

/* 绫诲瀷鏍囩+鐘舵€?*/
#nest-sub-calendar .nc-rp-top {
    display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
#nest-sub-calendar .nc-rp-label {
    font-size: 10px; padding: 2px 8px; border-radius: 999px;
    letter-spacing: 0.06em; border: 0.5px solid;
}
#nest-sub-calendar .nc-rp-label.reward {
    color: #7a9a6a; border-color: rgba(160,190,150,0.5);
    background: rgba(168,184,160,0.06);
}
#nest-sub-calendar .nc-rp-label.punish {
    color: #b09090; border-color: rgba(190,150,150,0.5);
    background: rgba(201,168,168,0.06);
}
#nest-sub-calendar .nc-rp-status-dot {
    width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0;
}
#nest-sub-calendar .nc-rp-status-dot.pending { background: var(--gold, #C4A86A); }
#nest-sub-calendar .nc-rp-status-dot.done { background: var(--sage, #A8B8A0); }
#nest-sub-calendar .nc-rp-status-dot.failed { background: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-rp-status-dot.overdue { background: #c09080; }
#nest-sub-calendar .nc-rp-status-text {
    font-size: 10px; color: var(--text-muted); letter-spacing: 0.03em;
}

/* 鏍囬涓庢弿杩?*/
#nest-sub-calendar .nc-rp-title {
    font-size: 14px; font-weight: 500; color: var(--text-primary);
    margin-bottom: 4px; letter-spacing: 0.02em; line-height: 1.5;
}
#nest-sub-calendar .nc-rp-desc {
    font-size: 11px; color: var(--text-secondary); margin-bottom: 6px;
    line-height: 1.6;
}
#nest-sub-calendar .nc-rp-source {
    font-size: 10px; color: var(--text-muted); margin-bottom: 2px;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; letter-spacing: 0.03em;
}

/* 鎿嶄綔鎸夐挳 */
#nest-sub-calendar .nc-rp-actions {
    display: flex; gap: 8px; margin-top: 10px; padding-top: 10px;
    border-top: 0.5px solid rgba(180,160,140,0.1);
}
#nest-sub-calendar .nc-rp-act {
    display: inline-flex; align-items: center; gap: 3px;
    padding: 5px 14px; border-radius: 999px; border: 0.5px solid;
    background: transparent; font-family: inherit; font-size: 11px;
    cursor: pointer; letter-spacing: 0.04em; color: var(--text-secondary);
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-rp-act:active { transform: scale(0.95); }
#nest-sub-calendar .nc-rp-act.done {
    color: #7a9a6a; border-color: rgba(160,190,150,0.5);
}
#nest-sub-calendar .nc-rp-act.done:hover { background: rgba(160,190,150,0.08); }
#nest-sub-calendar .nc-rp-act.fail {
    color: #b09090; border-color: rgba(190,150,150,0.5);
}
#nest-sub-calendar .nc-rp-act.fail:hover { background: rgba(190,150,150,0.08); }
#nest-sub-calendar .nc-rp-act.defer {
    color: #a09080; border-color: rgba(180,170,150,0.4);
}
#nest-sub-calendar .nc-rp-act.defer:hover { background: rgba(180,170,150,0.06); }

/* 宸插畬鎴愬崱娣″寲 */
#nest-sub-calendar .nc-rp-card.done { opacity: 0.55; }
#nest-sub-calendar .nc-rp-card.failed { opacity: 0.55; }

/* 淇敼鍘嗗彶 */
#nest-sub-calendar .nc-rp-history-toggle {
    font-size: 10px; color: var(--text-muted); cursor: pointer;
    margin-top: 8px; user-select: none; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 3px;
}
#nest-sub-calendar .nc-rp-history-toggle:hover { color: var(--text-secondary); }
#nest-sub-calendar .nc-rp-history {
    margin-top: 6px; padding: 8px 10px;
    background: rgba(245,240,235,0.4); border-radius: 8px;
    font-size: 10px; color: var(--text-muted);
}
#nest-sub-calendar .nc-rp-hist-item {
    padding: 2px 0; border-bottom: 0.5px solid rgba(180,160,140,0.08);
}
#nest-sub-calendar .nc-rp-hist-item:last-child { border-bottom: none; }
#nest-sub-calendar .hist-by { color: var(--accent-rose); font-weight: 500; }
#nest-sub-calendar .hist-time { color: var(--text-muted); }

/* ===== 绌虹姸鎬侊紙鑺卞瓧澶ф爣棰?+ 涓枃鍓锛?===== */

/* ===== 缁熻鍗＄墖 ===== */
#nest-sub-calendar .nc-stats-card {
    margin-top: 16px; padding: 14px;
    background: var(--surface-solid); border-radius: 12px;
    box-shadow: var(--shadow-xs);
}
#nest-sub-calendar .nc-stats-title {
    font-family: var(--font-decorative); font-style: italic;
    font-size: 13px; color: var(--text-muted); letter-spacing: 0.06em;
    margin-bottom: 10px;
}
#nest-sub-calendar .nc-stats-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
#nest-sub-calendar .nc-stat-item {
    text-align: center; padding: 8px;
    background: rgba(245,240,235,0.4); border-radius: 8px;
}
#nest-sub-calendar .nc-stat-val {
    font-family: var(--font-decorative);
    font-size: 20px; font-weight: 600; color: var(--text-primary);
    line-height: 1.3;
}
#nest-sub-calendar .nc-stat-lbl {
    font-size: 10px; color: var(--text-muted); letter-spacing: 0.04em; margin-top: 2px;
}
#nest-sub-calendar .nc-stats-rp {
    margin-top: 10px; display: flex; align-items: center; gap: 6px;
    font-size: 11px; color: var(--text-secondary);
}
#nest-sub-calendar .nc-stats-div { color: var(--gold); opacity: 0.4; }

/* ===== 甯姪鎸夐挳 ===== */
#nest-sub-calendar .nc-help-btn {
    width: 22px; height: 22px; border-radius: 50%;
    border: 1px solid var(--border); background: transparent;
    font-family: var(--font-decorative); font-style: italic;
    font-size: 11px; color: var(--text-secondary);
    cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
    transition: all 0.2s ease; flex-shrink: 0;
}
#nest-sub-calendar .nc-help-btn:hover {
    background: var(--accent-rose-light); border-color: var(--accent-rose);
}

/* ===== 绫诲瀷/鐘舵€侀€夋嫨鍣紙鏇挎崲鍘熺敓select锛?==== */
#nest-sub-calendar .nc-type-picker {
    display: flex; gap: 6px;
}
#nest-sub-calendar .nc-tp-btn {
    padding: 5px 12px; border-radius: 999px;
    border: 1px solid var(--border); background: transparent;
    font-family: inherit; font-size: 11px; letter-spacing: 0.04em;
    color: var(--text-secondary); cursor: pointer;
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-tp-btn:active { transform: scale(0.94); }
#nest-sub-calendar .nc-tp-btn.active {
    background: var(--tp-color, var(--accent-rose));
    border-color: var(--tp-color, var(--accent-rose));
    color: #fff; font-weight: 500;
}
#nest-sub-calendar .nc-status-picker {
    display: flex; gap: 6px; flex-wrap: wrap;
}
#nest-sub-calendar .nc-sp-btn {
    padding: 5px 12px; border-radius: 999px;
    border: 1px solid var(--border); background: transparent;
    font-family: inherit; font-size: 11px; letter-spacing: 0.04em;
    color: var(--text-secondary); cursor: pointer;
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-sp-btn:active { transform: scale(0.94); }
#nest-sub-calendar .nc-sp-btn.active {
    background: var(--accent-rose, #C9A8A8);
    border-color: var(--accent-rose, #C9A8A8);
    color: #fff; font-weight: 500;
}

/* ===== 鏃ュ巻澶村府鍔╂寜閽紙鍦ㄥ彸渚х粍鍐咃紝涓嶉噸鍙狅級===== */
#nest-sub-calendar .nc-cal-help-btn {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 13px; opacity: 1; color: var(--accent); font-weight: 600;
}
#nest-sub-calendar .nc-cal-help-btn:hover { opacity: 1; }

/* ===== 鎵归噺鏍囪鎸夐挳 ===== */
#nest-sub-calendar .nc-mark-mode-btn {
    opacity: 0.45;
}
#nest-sub-calendar .nc-mark-mode-btn:hover,
#nest-sub-calendar .nc-mark-mode-btn.active { opacity: 1; }
#nest-sub-calendar .nc-mark-mode-btn.active {
    background: var(--accent-rose-light) !important;
    border-color: var(--accent-rose) !important;
    color: var(--accent-rose) !important;
}

/* ===== 鏃ユ爣璁板垏鎹㈣ ===== */
#nest-sub-calendar .nc-marker-row,
#nest-sub-calendar .nc-single-marker {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 2px 4px; margin-bottom: 4px;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
/* 批量标记/单天标记切换：淡入淡出（防「关闭时单天栏闪现」） */
#nest-sub-calendar .nc-mark-hidden {
    opacity: 0; pointer-events: none; transform: translateY(-6px);
}
#nest-sub-calendar .nc-marker-label {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 11px; color: var(--text-muted);
    flex-shrink: 0;
}
#nest-sub-calendar .nc-marker-seg {
    display: flex; border: 1px solid var(--border); border-radius: 999px;
    background: var(--input-bg); padding: 2px;
}
#nest-sub-calendar .nc-ms-btn {
    padding: 3px 10px; border-radius: 999px; border: none;
    background: transparent; font-family: inherit; font-size: 11px;
    letter-spacing: 0.04em; color: var(--text-secondary); cursor: pointer;
    transition: all 0.25s cubic-bezier(0.22,0.61,0.36,1);
}
#nest-sub-calendar .nc-ms-btn:active { transform: scale(0.94); }
#nest-sub-calendar .nc-ms-btn.active { background: var(--accent-rose-light); color: var(--accent-rose); font-weight: 500; }
#nest-sub-calendar .nc-ms-workday.active { background: rgba(168,184,160,0.15); color: #7a8a70; }
#nest-sub-calendar .nc-ms-restday.active { background: rgba(184,168,196,0.15); color: #8a7a94; }
/* 标记槽（单日/批量）在同位置淡入淡出 + 未选日期提示 */
#nest-sub-calendar .nc-marker-fade { animation: ncMarkerFade 0.24s ease; }
@keyframes ncMarkerFade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
#nest-sub-calendar .nc-ms-hint { font-size: 11.5px; color: var(--text-muted); }

/* ===== 鏃ユ爣璁帮細鏁存牸娣¤壊搴曪紙鐢?.nc-marker-* 鍗曞厓鏍?class 鎵挎媴锛岃 .nc-day.nc-marker-* 瑙勫垯锛?===== */
#nest-sub-calendar .nc-has-marker.nc-marker-workday .nc-day-num { color: #7a8a70; }
#nest-sub-calendar .nc-has-marker.nc-marker-restday .nc-day-num { color: #8a7a94; }

/* ===== 鎵归噺鏍囪妯″紡 ===== */
#nest-sub-calendar .nc-mark-selected {
    background: var(--accent-rose-light, rgba(201,168,168,0.15));
    box-shadow: inset 0 0 0 1.5px var(--accent-rose, #C9A8A8);
}
#nest-sub-calendar .nc-mark-bar {
    display: flex; align-items: center; gap: 8px;
    margin-top: 10px; padding: 10px 12px;
    background: var(--surface-solid); border-radius: 10px;
    box-shadow: var(--shadow-xs);
    animation: ncMarkBarIn 0.25s cubic-bezier(0.22,0.61,0.36,1);
    transition: opacity 0.22s ease, transform 0.22s ease;
}
#nest-sub-calendar .nc-mark-bar.nc-mark-hidden { animation: none; }
@keyframes ncMarkBarIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
#nest-sub-calendar .nc-mark-bar-info {
    font-size: 12px; color: var(--text-secondary); flex: 1;
}
#nest-sub-calendar .nc-mark-bar-btn {
    padding: 5px 12px; border-radius: 999px; border: 0.5px solid var(--border);
    background: transparent; font-family: inherit; font-size: 11px;
    cursor: pointer; letter-spacing: 0.04em;
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-mark-bar-btn:active { transform: scale(0.95); }
#nest-sub-calendar .nc-mark-bar-workday { color: #7a8a70; border-color: rgba(168,184,160,0.4); }
#nest-sub-calendar .nc-mark-bar-workday:hover { background: rgba(168,184,160,0.1); }
#nest-sub-calendar .nc-mark-bar-restday { color: #8a7a94; border-color: rgba(184,168,196,0.4); }
#nest-sub-calendar .nc-mark-bar-restday:hover { background: rgba(184,168,196,0.1); }
#nest-sub-calendar .nc-mark-bar-cancel { color: var(--text-muted); }
#nest-sub-calendar .nc-mark-bar-cancel:hover { border-color: var(--danger); color: var(--danger); }

/* ===== 鑷畾涔夋椂闂撮€夋嫨鍣?===== */
#nest-sub-calendar .nc-time-input {
    display: flex; align-items: center; gap: 4px;
    padding: 5px 8px; border: 1px solid var(--border); border-radius: 8px;
    background: var(--input-bg); cursor: pointer;
    font-family: 'SF Mono', 'Consolas', monospace; font-size: 12px;
    color: var(--text-secondary); flex-shrink: 0; min-width: 56px;
    transition: border-color 0.15s ease;
    user-select: none;
}
#nest-sub-calendar .nc-time-input:hover { border-color: var(--accent-rose); }
#nest-sub-calendar .nc-time-val.nc-time-set { color: var(--text-primary); }
#nest-sub-calendar .nc-time-pop {
    position: absolute; z-index: 200;
    background: var(--surface-solid); border-radius: 12px;
    box-shadow: var(--shadow-md); padding: 12px;
    width: 178px; animation: ncPopIn 0.2s ease;
}
#nest-sub-calendar .nc-tp-header {
    text-align: center; padding-bottom: 8px;
    border-bottom: 1px solid var(--gold-light); margin-bottom: 8px;
}
#nest-sub-calendar .nc-tp-title-en {
    display: block; font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-size: 13px; color: var(--accent-rose);
    letter-spacing: 0.04em;
}
#nest-sub-calendar .nc-tp-colon {
    display: block; font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 20px; color: var(--text-primary); margin-top: 2px;
}
#nest-sub-calendar .nc-tp-cols {
    display: flex; gap: 0; max-height: 160px; overflow-y: auto;
}
#nest-sub-calendar .nc-tp-col {
    flex: 1; display: flex; flex-direction: column; align-items: center;
}
#nest-sub-calendar .nc-tp-div {
    width: 1px; background: var(--gold-light); flex-shrink: 0;
}
#nest-sub-calendar .nc-tp-opt {
    padding: 4px 8px; font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 12px; color: var(--text-secondary); cursor: pointer;
    border-radius: 6px; transition: all 0.15s ease;
}
#nest-sub-calendar .nc-tp-opt:hover { background: var(--accent-rose-light); }
#nest-sub-calendar .nc-tp-opt.active {
    background: var(--accent-rose, #C9A8A8); color: #fff;
}
#nest-sub-calendar .nc-tp-foot {
    display: flex; gap: 8px; margin-top: 10px;
    padding-top: 8px; border-top: 1px solid var(--border);
}
#nest-sub-calendar .nc-tp-btn-cancel {
    flex: 1; padding: 6px 0; border-radius: 8px;
    border: 1px solid var(--border); background: transparent;
    font-family: inherit; font-size: 12px; color: var(--text-secondary);
    cursor: pointer; transition: all 0.2s ease;
}
#nest-sub-calendar .nc-tp-btn-ok {
    flex: 1; padding: 6px 0; border-radius: 8px;
    border: none; background: var(--accent-gradient);
    font-family: inherit; font-size: 12px; color: #fff;
    cursor: pointer; transition: all 0.2s ease;
    box-shadow: var(--shadow-sm);
}
#nest-sub-calendar .nc-tp-btn-ok:active { transform: scale(0.96); }

/* ===== 娣诲姞琛岃緭鍏?+ 鎵归噺鍒囨崲鎸夐挳 ===== */
#nest-sub-calendar .nc-add-input-row {
    display: flex; gap: 6px; align-items: center;
}
#nest-sub-calendar .nc-add-input-row .nc-add-input { flex: 1; }
#nest-sub-calendar .nc-batch-toggle {
    width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
    border: 1px solid var(--border); background: transparent;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: var(--text-muted);
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-batch-toggle:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
#nest-sub-calendar .nc-batch-toggle.active {
    background: var(--accent-rose-light); border-color: var(--accent-rose);
    color: var(--accent-rose);
}

/* ===== 鎵归噺褰曞叆 ===== */
#nest-sub-calendar .nc-batch-input {
    margin-bottom: 12px;
    animation: ncBatchIn 0.3s cubic-bezier(0.22,0.61,0.36,1);
}
@keyframes ncBatchIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
#nest-sub-calendar .nc-batch-textarea {
    width: 100%; box-sizing: border-box;
    border: 1px solid var(--border); border-radius: 8px;
    padding: 10px 12px; font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 12px; line-height: 1.7;
    background: var(--input-bg); color: var(--text-primary);
    outline: none; resize: vertical; min-height: 80px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#nest-sub-calendar .nc-batch-textarea:focus {
    border-color: var(--accent-rose, #C9A8A8);
    box-shadow: 0 0 0 3px var(--accent-rose-light, rgba(201,168,168,0.12));
}
#nest-sub-calendar .nc-batch-textarea::placeholder {
    color: var(--text-muted); opacity: 0.6; font-size: 11px;
}
#nest-sub-calendar .nc-batch-actions {
    display: flex; gap: 8px; margin-top: 8px;
}
#nest-sub-calendar .nc-batch-submit {
    flex: 1; padding: 8px 0; border: none; border-radius: 8px;
    background: var(--accent-gradient); color: #fff;
    font-family: inherit; font-size: 13px; cursor: pointer;
    letter-spacing: 0.06em;
    box-shadow: var(--shadow-sm);
    transition: transform 0.15s ease;
}
#nest-sub-calendar .nc-batch-submit:active { transform: scale(0.97); }
#nest-sub-calendar .nc-batch-cancel {
    padding: 8px 16px; border-radius: 8px;
    border: 1px solid var(--border); background: transparent;
    font-family: inherit; font-size: 12px; color: var(--text-secondary);
    cursor: pointer; transition: all 0.2s ease;
}
#nest-sub-calendar .nc-batch-cancel:hover { border-color: var(--accent-rose); color: var(--accent-rose); }

/* ===== 浜嬩欢鍗＄墖澧炲己 ===== */
#nest-sub-calendar .nc-evt {
    animation: ncEvtIn 0.25s ease-out;
    overflow: hidden;
}
@keyframes ncEvtIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
#nest-sub-calendar .nc-evt-bar {
    width: 3px; align-self: stretch; border-radius: 2px; flex-shrink: 0;
}
#nest-sub-calendar .nc-bar-sage { background: var(--sage, #A8B8A0); }
#nest-sub-calendar .nc-bar-gold { background: var(--gold, #C4A86A); }
#nest-sub-calendar .nc-bar-rose { background: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-evt-body {
    flex: 1; display: flex; flex-direction: column; gap: 3px;
}
#nest-sub-calendar .nc-evt-timerange {
    font-size: 11px; color: var(--text-muted);
    font-family: 'SF Mono', 'Consolas', monospace;
}
#nest-sub-calendar .nc-evt-done {
    transition: all 0.3s ease;
}
/* 鏃ф牱寮忚鐩?*/
#nest-sub-calendar .nc-evt .nc-evt-dot { display: none; }

/* ===== 鍙岄噸纭鍔ㄧ敾 ===== */
#nest-sub-calendar .nc-evt-check.nc-confirming,
#nest-sub-calendar .nc-evt-fail.nc-confirming {
    animation: ncConfirmPulse 0.6s ease-in-out infinite;
    color: var(--accent-rose, #C9A8A8) !important;
    background: var(--accent-rose-light);
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(200,160,160,0.25);
}
@keyframes ncConfirmPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

/* ===== 浜嬩欢鍗℃搷浣滄寜閽寮?===== */
#nest-sub-calendar .nc-evt-fail { color: var(--text-muted); }
#nest-sub-calendar .nc-evt-fail:hover { color: var(--text-secondary); }
#nest-sub-calendar .nc-evt-fail:active { color: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-evt-more { color: var(--text-muted); }
#nest-sub-calendar .nc-evt-more:hover { color: var(--gold, #C4A86A); }
#nest-sub-calendar .nc-evt-failed .nc-evt-title { color: var(--text-muted); }
#nest-sub-calendar .nc-evt-failed .nc-evt-timerange { color: var(--text-muted); }
#nest-sub-calendar .nc-evt-status {
    display: inline-block;
    font-size: 9.5px;
    color: #a86a5a;
    border: 1px solid rgba(192, 144, 128, 0.5);
    border-radius: 3px;
    padding: 0 4px;
    margin-left: 6px;
    vertical-align: 1.5px;
    letter-spacing: 0.5px;
}

/* ===== 浜嬩欢鏇村鑿滃崟 ===== */
.nc-evt-menu {
    position: absolute;
    z-index: 1550;
    min-width: 96px;
    background: var(--surface-solid, #FDFBF7);
    border: 1px solid rgba(196, 168, 106, 0.3);
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.14);
    padding: 5px 0;
    animation: ncMenuIn 0.16s ease;
}
@keyframes ncMenuIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
.nc-em-item {
    padding: 9px 14px;
    font-size: 12.5px;
    color: var(--text-primary);
    cursor: pointer;
    transition: background 0.12s ease;
}
.nc-em-item:hover { background: rgba(201, 168, 168, 0.1); }
.nc-em-danger { color: #b07a6a; }
.nc-em-danger:hover { background: rgba(192, 144, 128, 0.1); }
[data-theme-mode="dark"] .nc-evt-menu { background: #252120; }

/* ===== 鏃ョ▼鍥炲繂锛堢炕涔﹂〉鍘嗗彶鍗＄墖锛?==== */
.nc-memory { margin: 14px 8px 0; padding: 0 2px; }
.nc-mem-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.nc-mem-en {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 13px;
    letter-spacing: 1.5px;
    color: var(--gold, #C4A86A);
}
.nc-mem-line { flex: 1; height: 0.5px; background: rgba(196, 168, 106, 0.3); }
.nc-mem-hint { font-size: 10.5px; color: var(--text-muted); letter-spacing: 0.5px; }
/* 空状态：衬线小字 + 花朵装饰，韩系法式安静风 */
.nc-mem-empty {
    text-align: center;
    padding: 26px 18px 30px;
    font-family: var(--font-body);
    font-size: 11.5px;
    line-height: 1.8;
    color: var(--text-muted);
    letter-spacing: 0.02em;
}
.nc-mem-empty .nc-mem-empty-en {
    font-family: 'Great Vibes', cursive;
    font-size: 22px;
    color: var(--gold, #C4A86A);
    opacity: 0.75;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}
.nc-mem-empty .nc-mem-empty-zh { display: block; }
.nc-mem-empty .nc-mem-empty-deco {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin: 14px auto 0; opacity: 0.7;
}
.nc-mem-empty .nc-mem-empty-deco::before, .nc-mem-empty .nc-mem-empty-deco::after {
    content: ''; width: 30px; height: 0.5px; background: rgba(196,168,106,0.4);
}
.nc-mem-empty .nc-mem-empty-deco svg { color: var(--gold, #C4A86A); flex-shrink: 0; }
.nc-mem-stage {
    position: relative;
    height: 208px;
    overflow: hidden;
    touch-action: pan-y;
}
.nc-mem-track {
    position: absolute;
    inset: 0;
}
.nc-mem-card {
    position: absolute;
    left: 50%;
    top: 6px;
    bottom: 6px;
    width: 150px;
    margin-left: -75px;
    background: var(--surface, #FDFBF7);
    border: 1px solid rgba(196, 168, 106, 0.35);
    border-radius: 14px;
    box-shadow: var(--shadow-sm, 0 4px 14px rgba(0,0,0,0.08));
    padding: 12px 12px 10px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.3s ease;
    will-change: transform, opacity;
    overflow: hidden;
}
.nc-mem-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(196, 168, 106, 0.5), transparent);
}
.nc-mem-date-en {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 11px;
    letter-spacing: 2px;
    color: var(--text-muted);
    text-transform: uppercase;
}
.nc-mem-date-num {
    font-family: 'Playfair Display', serif;
    font-size: 34px;
    line-height: 1.1;
    color: var(--accent, #C9A8A8);
    margin-top: 2px;
}
.nc-mem-week { font-size: 11px; color: var(--text-secondary); margin-top: 2px; letter-spacing: 1px; }
.nc-mem-meta {
    margin-top: 6px;
    font-size: 10.5px;
    color: var(--text-muted);
    background: rgba(201, 168, 168, 0.08);
    border-radius: 999px;
    padding: 2px 9px;
}
/* 绫诲埆鏍囩锛堥噸瑕?绾康鏃?鏃ュ父锛夛紝棰滆壊闅忓崱鐗囩被鍒?*/
.nc-mem-type {
    margin-top: 6px;
    font-size: 10px;
    letter-spacing: 1px;
    padding: 2px 9px;
    border-radius: 999px;
    border: 0.5px solid currentColor;
}
/* 鍗＄墖閰嶈壊鎸夊綋澶╂渶绐佸嚭绫诲埆鍖哄垎锛堜笌鏃ュ巻鍦嗙偣/鍥句緥涓€鑷达細閲嶈=閲戙€佺邯蹇垫棩=鐜€佹棩甯?缁匡級 */
.nc-mem-card.nc-mem-important { border-color: rgba(196, 168, 106, 0.55); }
.nc-mem-card.nc-mem-important::before { background: linear-gradient(90deg, transparent, rgba(196, 168, 106, 0.7), transparent); }
.nc-mem-card.nc-mem-important .nc-mem-type { color: var(--gold-dark, #A89050); background: rgba(196, 168, 106, 0.10); }
.nc-mem-card.nc-mem-important .nc-mem-date-num { color: var(--gold, #C4A86A); }
.nc-mem-card.nc-mem-anniversary { border-color: rgba(201, 168, 168, 0.55); }
.nc-mem-card.nc-mem-anniversary::before { background: linear-gradient(90deg, transparent, rgba(201, 168, 168, 0.7), transparent); }
.nc-mem-card.nc-mem-anniversary .nc-mem-type { color: var(--accent, #C9A8A8); background: rgba(201, 168, 168, 0.10); }
.nc-mem-card.nc-mem-anniversary .nc-mem-date-num { color: var(--accent, #C9A8A8); }
.nc-mem-card.nc-mem-daily { border-color: rgba(168, 184, 160, 0.55); }
.nc-mem-card.nc-mem-daily::before { background: linear-gradient(90deg, transparent, rgba(168, 184, 160, 0.7), transparent); }
.nc-mem-card.nc-mem-daily .nc-mem-type { color: #7a9a6a; background: rgba(168, 184, 160, 0.10); }
.nc-mem-card.nc-mem-daily .nc-mem-date-num { color: var(--sage, #A8B8A0); }
.nc-mem-title {
    font-size: 11px;
    color: var(--text-primary);
    margin-top: 4px;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nc-mem-open {
    margin-top: auto;
    font-size: 10.5px;
    color: var(--gold, #C4A86A);
    letter-spacing: 1px;
    border-top: 1px dashed rgba(196, 168, 106, 0.3);
    padding-top: 6px;
    width: 100%;
}
.nc-mem-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(168, 128, 128, 0.35);
    background: rgba(201, 168, 168, 0.18);
    color: var(--rose-dark, #A88080);
    cursor: pointer;
    z-index: 3;
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-xs);
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.nc-mem-arrow:hover { border-color: var(--accent-rose); color: var(--accent-rose); background: rgba(201, 168, 168, 0.28); box-shadow: var(--shadow-sm); }
.nc-mem-arrow:disabled { opacity: 0.3; pointer-events: none; }
.nc-mem-arrow:active { transform: translateY(-50%) scale(0.9); }
.nc-mem-prev { left: 6px; }
.nc-mem-next { right: 6px; }
/* 鎷栧姩涓細瀹屽叏璺熸墜锛堢鐢?transition锛屾澗鎵嬪悗鎭㈠瀹炵幇鍥炲脊/椋炲嚭鍔ㄧ敾锛?*/
.nc-mem-stage.nc-mem-dragging .nc-mem-card { transition: none; }
.nc-mem-stage.nc-mem-dragging { cursor: grabbing; }
/* 鏉炬墜缈婚〉锛氱◢闀跨殑涓濇粦杩囨浮锛屽崱鐗囦粠銆屽綋鍓嶆嫋鍔ㄤ綅銆嶆粦鍒般€屾柊妲戒綅銆嶏紝涓庝笅涓€寮犺鎺ユ棤璺冲彉 */
.nc-mem-stage.nc-mem-flipping .nc-mem-card { transition: transform 0.36s cubic-bezier(0.3, 0.75, 0.2, 1), opacity 0.3s ease; }
.nc-mem-prev { left: 6px; }
.nc-mem-next { right: 6px; }
.nc-mem-dots {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-top: 8px;
    flex-wrap: nowrap;
    position: relative;
    padding-bottom: 4px;
}
.nc-mem-dot {
    width: 5px; height: 5px;
    border-radius: 50%;
    background: rgba(180, 170, 155, 0.35);
    pointer-events: none;      /* 只作指示，不可点 */
    transition: all 0.2s ease;
    flex-shrink: 0;
}
/* 婊戝姩鎸囩ず婊戝潡锛氱炕椤垫椂浠庢棫鐐规粦鍒版柊鐐癸紙涓嶇敤鐬棿璺筹級锛岀洊鍦ㄧ伆鑹插渾鐐逛笂 */
.nc-mem-dot-slider {
    position: absolute; top: -1px;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--accent, #C9A8A8);
    box-shadow: 0 0 5px rgba(201, 168, 168, 0.45);
    pointer-events: none;
    transition: transform 0.3s cubic-bezier(0.3, 0.75, 0.2, 1);
}
.nc-mem-dot.active {
    background: var(--accent, #C9A8A8);
    transform: scale(1.4);
}
[data-theme-mode="dark"] .nc-mem-card { background: #252120; }
[data-theme-mode="dark"] .nc-mem-arrow { background: #252120; }

/* ===== 甯姪闈㈡澘浠ｇ爜绀轰緥 ===== */
.nc-help-code {
    font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 11px; color: var(--text-secondary);
    background: rgba(180,160,140,0.08); padding: 8px 12px;
    border-radius: 6px; margin: 4px 0 8px 8px;
    line-height: 1.8; letter-spacing: 0.02em;
}
.nc-help-text code {
    font-family: 'SF Mono', 'Consolas', monospace;
    font-size: 10px; background: rgba(180,160,140,0.12);
    padding: 1px 5px; border-radius: 3px; color: var(--text-secondary);
}

/* ===== 鏆楄壊妯″紡閫傞厤 鈥?鏂板UI ===== */
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-card { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-card:hover { box-shadow: 0 2px 4px rgba(0,0,0,0.2), 0 4px 16px rgba(0,0,0,0.3); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-title { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-summary { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-stat em { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-deco-en { color: #8a8278; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-label.reward { background: rgba(168,184,160,0.08); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-label.punish { background: rgba(201,168,168,0.08); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-history { background: rgba(40,36,32,0.5); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-source { color: #8a8278; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-stats-card { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-stat-item { background: rgba(40,36,32,0.6); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-stat-val { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-stats-rp { color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-history { background: rgba(40,36,32,0.5); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-sp-btn { border-color: #5a5248; color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-sp-btn.active { background: #C9A8A8; color: #1a1614; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-tp-btn { border-color: #5a5248; color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-tp-btn.active { color: #1a1614; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-help-btn { border-color: #5a5248; color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-help-btn:hover { background: rgba(201,168,168,0.1); }
/* 鏂板UI鏆楄壊 */
[data-theme-mode="dark"] #nest-sub-calendar .nc-time-pop { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-tp-colon { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-tp-opt:hover { background: rgba(201,168,168,0.1); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-tp-opt.active { background: #C9A8A8; color: #1a1614; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-mark-bar { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-batch-textarea { background: #252120; color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-batch-textarea::placeholder { color: #6a6258; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-ms-btn { color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-ms-btn.active { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-ms-workday.active { color: #a0b090; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-ms-restday.active { color: #b0a0b4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-marker-label { color: #8a8278; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-cal-help-btn { color: #a09890; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-cal-help-btn:hover { color: var(--accent-rose); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-help-code { background: rgba(40,36,32,0.5); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-help-text code { background: rgba(180,160,140,0.1); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-mark-bar-btn { border-color: #5a5248; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-evt-bar { opacity: 0.8; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-task-deco-en { color: #8a8278; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-task-card { background: #252120; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-task-card:hover { box-shadow: 0 2px 4px rgba(0,0,0,0.2), 0 4px 16px rgba(0,0,0,0.3); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-task-title { color: #d4cec4; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-badge-pending { background: rgba(196,168,106,0.08); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-badge-active { background: rgba(201,168,168,0.08); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-badge-done { background: rgba(168,184,160,0.08); }

/* ===== 绐勫睆閫傞厤 ===== */
@media (max-width: 380px) {
    #nest-sub-calendar { padding: 10px 10px 20px; }
    #nest-sub-calendar .nc-day-num { font-size: 13px; }
    #nest-sub-calendar .nc-hero-en { font-size: 23px; }
    #nest-sub-calendar .nc-time-input { min-width: 48px; padding: 5px 6px; font-size: 11px; }
    #nest-sub-calendar .nc-task-toolbar { flex-wrap: wrap; }
    #nest-sub-calendar .nc-marker-seg { gap: 0; }
    #nest-sub-calendar .nc-ms-btn { padding: 3px 7px; font-size: 10px; }
    #nest-sub-calendar .nc-type-picker { gap: 4px; }
    #nest-sub-calendar .nc-tp-btn { padding: 4px 8px; font-size: 10px; }
    #nest-sub-calendar .nc-batch-textarea { font-size: 11px; min-height: 70px; }
    #nest-sub-calendar .nc-single-marker { flex-wrap: wrap; gap: 6px; }
    #nest-sub-calendar .nc-mark-bar-info { flex: 1 1 100%; font-size: 11px; }
    #nest-sub-calendar .nc-month-zh { font-size: 14px; }
    #nest-sub-calendar .nc-cal-help-btn { right: 0; }
}
@media (min-width: 420px) {
    /* 内容区留白给宽屏；勿再给整个面板 padding（会连带把顶部返回条顶下去、收窄 → 悬空+太宽） */
    #nest-sub-calendar #nc-root { padding: 16px 20px 28px; }
    #nest-sub-calendar .nc-cal-card { padding: 16px 14px 14px; }
}

/* ===== 銆屾柊澧炴棩绋嬨€嶅叆鍙ｏ紙鏁磋妯潯锛屾枃瀛楀眳涓級 ===== */
#nest-sub-calendar .nc-new-schedule { padding: 2px 2px 6px; }
#nest-sub-calendar .nc-new-schedule-btn {
    width: 100%; margin-top: 4px; border: none !important; border-radius: var(--radius-md);
    height: 46px; background: var(--accent) !important; color: #FCFAF6 !important;
    font-family: 'Cormorant Garamond', 'Noto Serif SC', serif; font-size: 15px;
    letter-spacing: 0.2em; cursor: pointer;
    -webkit-appearance: none; appearance: none !important;
    display: flex; align-items: center; justify-content: center; gap: 7px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.14s ease, background 0.18s ease, opacity 0.18s ease;
}
#nest-sub-calendar .nc-new-schedule-btn:hover { background: var(--accent-hover); }
#nest-sub-calendar .nc-new-schedule-btn:active { transform: scale(0.98); }
#nest-sub-calendar .nc-new-schedule-btn svg { flex-shrink: 0; }
[data-theme-mode="dark"] #nest-sub-calendar .nc-new-schedule-btn { color: #FCFAF6; }

/* ============================================================
   任务 · 奖惩 仪表盘（2026-09 重做）
   ============================================================ */

/* ---- 任务仪表盘 ---- */
#nest-sub-calendar .nc-task-dash { display: flex; flex-direction: column; }
#nest-sub-calendar .nc-task-hero {
    display: flex; align-items: center; gap: 8px; margin: 2px 0 12px; padding: 0 4px;
}
#nest-sub-calendar .nc-task-hero-en {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 13px; color: var(--text-muted); letter-spacing: 0.04em; opacity: 0.75;
}
#nest-sub-calendar .nc-task-hero-line {
    flex: 1; height: 0.5px;
    background: linear-gradient(90deg, rgba(196,168,106,0.25), transparent 70%);
}
#nest-sub-calendar .nc-task-stats { margin-bottom: 12px; }

#nest-sub-calendar .nc-task-filters {
    display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; padding: 0 2px;
}
#nest-sub-calendar .nc-task-chip {
    padding: 7px 14px; border-radius: 999px; border: 0.5px solid var(--border);
    background: transparent; font-family: inherit; font-size: 12px;
    color: var(--text-secondary); cursor: pointer; letter-spacing: 0.04em;
    transition: all 0.2s ease;
}
#nest-sub-calendar .nc-task-chip:active { transform: scale(0.95); }
#nest-sub-calendar .nc-task-chip.active {
    border-color: var(--accent-rose); color: var(--accent-rose);
    background: rgba(201,168,168,0.08);
}

#nest-sub-calendar .nc-task-list { display: flex; flex-direction: column; }

#nest-sub-calendar .nc-task-sec { margin-bottom: 6px; }
#nest-sub-calendar .nc-task-sec-head {
    display: flex; align-items: center; gap: 10px; margin: 8px 2px 10px; padding: 0 2px;
}
#nest-sub-calendar .nc-task-sec-line {
    flex: 1; height: 0.5px; background: linear-gradient(90deg, rgba(196,168,106,0.22), transparent 80%);
}
#nest-sub-calendar .nc-task-sec-label {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 12px; color: var(--text-muted); letter-spacing: 0.06em; white-space: nowrap;
}
#nest-sub-calendar .nc-task-sec-history .nc-task-sec-head { opacity: 0.85; }
#nest-sub-calendar .nc-task-sec-history .nc-task-card { opacity: 0.55; }

/* ---- 奖惩仪表盘 ---- */
#nest-sub-calendar .nc-rp-dash { display: flex; flex-direction: column; }
#nest-sub-calendar .nc-rp-head {
    display: flex; align-items: center; gap: 8px; margin: 2px 0 10px; padding: 0 4px;
}
#nest-sub-calendar .nc-rp-head-en {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 13px; color: var(--text-muted); letter-spacing: 0.04em; opacity: 0.75; white-space: nowrap;
}
#nest-sub-calendar .nc-rp-head-line {
    flex: 1; height: 0.5px; background: linear-gradient(90deg, rgba(196,168,106,0.25), transparent 70%);
}

#nest-sub-calendar .nc-rp-monthnav {
    display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 10px;
}
#nest-sub-calendar .nc-rp-mnav-btn {
    width: 30px; height: 30px; border-radius: 50%; border: 0.5px solid var(--border);
    background: transparent; color: var(--text-secondary); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; transition: all 0.2s ease;
}
#nest-sub-calendar .nc-rp-mnav-btn:hover { border-color: var(--accent-rose); color: var(--accent-rose); }
#nest-sub-calendar .nc-rp-mnav-btn:active { transform: scale(0.92); }
#nest-sub-calendar .nc-rp-mnav-title {
    min-width: 96px; text-align: center; font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 16px; color: var(--text-primary); letter-spacing: 0.06em;
}
#nest-sub-calendar .nc-rp-today {
    padding: 4px 12px; border-radius: 999px; border: 0.5px solid var(--accent-rose);
    background: transparent; color: var(--accent-rose); font-family: inherit;
    font-size: 11px; cursor: pointer; letter-spacing: 0.06em; transition: all 0.2s ease;
}
#nest-sub-calendar .nc-rp-today:active { transform: scale(0.95); }

#nest-sub-calendar .nc-rp-monthstats {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    padding: 8px 12px; margin-bottom: 12px;
    background: var(--surface-solid); border-radius: 10px; box-shadow: var(--shadow-xs);
}
#nest-sub-calendar .nc-rp-mstat { font-size: 11px; color: var(--text-secondary); letter-spacing: 0.03em; }
#nest-sub-calendar .nc-rp-mstat em {
    font-family: 'Cormorant Garamond', Georgia, serif; font-style: normal;
    font-size: 15px; color: var(--text-primary); margin-right: 2px;
}
#nest-sub-calendar .nc-rp-mstat.re em { color: var(--sage, #A8B8A0); }
#nest-sub-calendar .nc-rp-mstat.pu em { color: var(--accent-rose, #C9A8A8); }
#nest-sub-calendar .nc-rp-mstat.ok em { color: var(--sage, #7a9a6a); }
#nest-sub-calendar .nc-rp-mstat.no em { color: #b09090; }
#nest-sub-calendar .nc-rp-mstat-div { width: 1px; height: 12px; background: rgba(180,160,140,0.2); flex-shrink: 0; }

#nest-sub-calendar .nc-rp-daygrid {
    background: var(--surface-solid); border-radius: 12px; padding: 10px;
    box-shadow: var(--shadow-xs); margin-bottom: 12px;
}
#nest-sub-calendar .nc-rp-grid-head,
#nest-sub-calendar .nc-rp-grid-body {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
#nest-sub-calendar .nc-rp-grid-head span {
    text-align: center; font-size: 10px; color: var(--text-muted); padding: 2px 0;
    letter-spacing: 0.06em;
}
#nest-sub-calendar .nc-rp-dcell {
    position: relative; border: none; background: transparent; border-radius: 8px;
    aspect-ratio: 1 / 1; font-family: inherit; font-size: 12px;
    color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background 0.15s ease, color 0.15s ease;
}
#nest-sub-calendar .nc-rp-dcell:hover { background: rgba(201,168,168,0.08); color: var(--text-primary); }
#nest-sub-calendar .nc-rp-dcell-empty { pointer-events: none; }
#nest-sub-calendar .nc-rp-dcell i {
    position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%; background: var(--accent-rose, #C9A8A8);
}
#nest-sub-calendar .nc-rp-dcell.nc-rp-today { color: var(--accent-rose); font-weight: 500; }
#nest-sub-calendar .nc-rp-dcell.nc-rp-selected { background: var(--accent-rose, #C9A8A8); color: #fff; }
#nest-sub-calendar .nc-rp-dcell.nc-rp-selected i { background: #fff; }

#nest-sub-calendar .nc-rp-statuschips {
    display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; padding: 0 2px;
}
#nest-sub-calendar .nc-rp-chip {
    padding: 7px 14px; border-radius: 999px; border: 0.5px solid var(--border);
    background: transparent; font-family: inherit; font-size: 12px;
    color: var(--text-secondary); cursor: pointer; letter-spacing: 0.04em; transition: all 0.2s ease;
}
#nest-sub-calendar .nc-rp-chip:active { transform: scale(0.95); }
#nest-sub-calendar .nc-rp-chip.active {
    border-color: var(--accent-rose); color: var(--accent-rose); background: rgba(201,168,168,0.08);
}

#nest-sub-calendar .nc-rp-daylist { display: flex; flex-direction: column; gap: 10px; }
#nest-sub-calendar .nc-rp-daysec { display: flex; flex-direction: column; gap: 10px; }
#nest-sub-calendar .nc-rp-daysec-head {
    display: flex; align-items: center; gap: 10px; margin: 4px 0 0; padding: 0 4px;
}
#nest-sub-calendar .nc-rp-daysec-label {
    font-family: 'Playfair Display', Georgia, serif; font-style: italic;
    font-size: 12px; color: var(--text-muted); letter-spacing: 0.06em;
}
#nest-sub-calendar .nc-rp-daysec-hist .nc-rp-card { opacity: 0.55; }

#nest-sub-calendar .nc-rp-hist-toggle {
    font-size: 10px; color: var(--text-muted); cursor: pointer;
    margin: 8px 4px 0; user-select: none; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 3px;
}
#nest-sub-calendar .nc-rp-hist-toggle:hover { color: var(--text-secondary); }
#nest-sub-calendar .nc-rp-hist-body {
    display: flex; flex-direction: column; gap: 10px; margin-top: 10px;
    padding-left: 6px; border-left: 1px solid rgba(180,160,140,0.14);
}

/* 编辑抽屉分段 */
#nest-sub-calendar .nc-modal-sec { margin-top: 2px; }
#nest-sub-calendar .nc-modal-sec .nc-sec-label { margin-top: 16px; }

/* 超时统计高亮 */
#nest-sub-calendar .nc-stat-overdue .nc-stat-val { color: #c09080; }

/* 暗色适配补充 */
[data-theme-mode="dark"] #nest-sub-calendar .nc-task-chip.active { background: rgba(201,168,168,0.10); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-chip.active { background: rgba(201,168,168,0.10); }
[data-theme-mode="dark"] #nest-sub-calendar .nc-rp-dcell.nc-rp-selected { background: var(--accent-rose, #C4A8A8); color: #1a1614; }

/* 动效降级：减少动画时去掉缩放/弹入 */
@media (prefers-reduced-motion: reduce) {
    #nest-sub-calendar .nc-task-chip:active,
    #nest-sub-calendar .nc-rp-chip:active,
    #nest-sub-calendar .nc-rp-mnav-btn:active,
    #nest-sub-calendar .nc-rp-today:active,
    #nest-sub-calendar .nc-rp-dcell { transition: none; }
    #nest-sub-calendar .nc-status-pop { animation: none; }
}

