.wt-cal{
  --ak-bg-deep:#111214;--ak-bg-panel:#1a1b1e;--ak-bg-card:#222326;
  --ak-bg-hover:#2a2b2f;--ak-border:rgba(255,255,255,.06);
  --ak-border-accent:rgba(255,255,255,.08);--ak-text:#e0ddd8;--ak-text-dim:rgba(224,221,216,.45);
  --ak-text-data:rgba(224,221,216,.6);--ak-mono:'Chakra Petch','JetBrains Mono',monospace;
  --ak-radius:2px;
  position:relative;background:var(--ak-bg-deep);color:var(--ak-text);font-family:'Chakra Petch','Noto Sans SC',sans-serif;
  transition:background .5s
}
[data-theme="light"] .wt-cal{
  --ak-bg-deep:#f2f0eb;--ak-bg-panel:#eae7e1;--ak-bg-card:#fff;
  --ak-bg-hover:#f5f3ee;--ak-border:rgba(0,0,0,.08);
  --ak-border-accent:rgba(0,0,0,.1);--ak-text:#1a1a1a;--ak-text-dim:rgba(26,26,26,.4);
  --ak-text-data:rgba(26,26,26,.55)
}

/* ── 背景 ── */
.wt-cal-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.wt-cal-bg-img{width:100%;height:100%;object-fit:cover;opacity:.04;filter:blur(6px) grayscale(1)}
.wt-cal-bg-mask{position:absolute;inset:0;background:linear-gradient(145deg,var(--ak-bg-deep) 40%,rgba(30,30,34,.97))}
[data-theme="light"] .wt-cal-bg-mask{background:linear-gradient(145deg,var(--ak-bg-deep) 40%,rgba(242,240,235,.97))}

/* ── 网格底纹 ── */
.wt-cal-body::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
  background-size:36px 36px
}
[data-theme="light"] .wt-cal-body::before{
  background-image:
    linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px)
}

/* ── 滚动提示 ── */
.wt-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:8px;cursor:pointer;opacity:.5;transition:opacity .3s}
.wt-scroll-hint:hover{opacity:1}
.wt-scroll-hint-text{font-size:10px;color:var(--ak-text-dim);letter-spacing:.15em;text-transform:uppercase}
.wt-scroll-hint-arrow{font-size:12px;color:var(--c-primary);animation:akBounce 2s ease infinite}
@keyframes akBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ── 顶部工具栏 ── */
.wt-cal-toolbar{
  position:relative;z-index:4;display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px 12px;
  background:var(--ak-bg-panel);
  border-bottom:1px solid var(--ak-border-accent);
  flex-shrink:0
}
.wt-cal-toolbar::after{
  content:'';position:absolute;bottom:-1px;left:0;width:120px;height:1px;
  background:var(--c-primary);box-shadow:0 0 12px var(--c-primary)
}
.wt-cal-toolbar-title{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.wt-cal-toolbar-sub{font-size:10px;color:var(--c-primary);letter-spacing:.12em;font-family:var(--ak-mono);margin-top:2px;opacity:.8}
.wt-cal-toolbar-right{display:flex;align-items:center;gap:6px}
.wt-cal-nav-btn{
  width:28px;height:28px;border-radius:var(--ak-radius);border:1px solid var(--ak-border);
  background:transparent;color:var(--ak-text-dim);font-size:16px;
  display:flex;align-items:center;justify-content:center;transition:all .15s;cursor:pointer
}
.wt-cal-nav-btn:hover{border-color:var(--c-primary);color:var(--c-primary);background:rgba(128,128,128,.04)}
.wt-cal-month-label{
  font-size:14px;font-weight:600;font-family:var(--ak-mono);letter-spacing:.06em;
  min-width:110px;text-align:center;color:var(--ak-text)
}

/* ── 图例 ── */
.wt-cal-legend{
  position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:16px;
  padding:8px 20px;background:var(--ak-bg-panel);border-bottom:1px solid var(--ak-border);
  flex-shrink:0
}
.wt-cal-legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--ak-text-dim);letter-spacing:.06em}
.wt-cal-legend-swatch{width:10px;height:10px;border-radius:1px;flex-shrink:0;opacity:.9}

/* ── 主体 ── */
.wt-cal-body{
  position:relative;z-index:1;
  display:flex;flex-direction:column;
  min-height:calc(100vh - 240px)
}

/* ── 图表区 ── */
.wt-cal-chart{flex:1;min-height:0;width:100%;overflow:auto;position:relative}
.wt-cal-chart::-webkit-scrollbar{width:4px;height:4px}
.wt-cal-chart::-webkit-scrollbar-thumb{background:rgba(128,128,128,.1);border-radius:1px}
.wt-cal-chart::-webkit-scrollbar-corner{background:transparent}

/* ── 日期头 ── */
.wt-cal-days-wrap{
  position:sticky;top:0;z-index:3;
  background:var(--ak-bg-deep);
  border-bottom:1px solid var(--ak-border-accent);
  transition:background .5s
}
.wt-cal-days-wrap::after{
  content:'';position:absolute;bottom:-1px;left:0;width:80px;height:1px;
  background:var(--c-primary);box-shadow:0 0 8px var(--c-primary)
}
/* ★ 日期行拉满全宽 */
.wt-cal-days{display:flex;width:100%}
/* ★ 每日列弹性等分 */
.wt-cal-day-col{
  flex:1;min-width:0;text-align:center;padding:5px 0;
  border-right:1px solid rgba(255,255,255,.025)
}
[data-theme="light"] .wt-cal-day-col{border-right-color:rgba(0,0,0,.04)}
.wt-cal-day-col.wkend{background:rgba(255,255,255,.012)}
[data-theme="light"] .wt-cal-day-col.wkend{background:rgba(0,0,0,.015)}
.wt-cal-day-col.today{background:rgba(128,128,128,.06)}
.wt-cal-day-num{font-size:11px;font-weight:600;font-family:var(--ak-mono);color:var(--ak-text-dim);line-height:1}
.wt-cal-day-col.today .wt-cal-day-num{color:var(--c-primary);font-weight:700}
.wt-cal-day-wk{font-size:8px;color:var(--ak-text-dim);opacity:.4;margin-top:1px;letter-spacing:.04em}
.wt-cal-day-col.wkend .wt-cal-day-wk{color:var(--c-primary);opacity:.35}

/* ── 甘特区 ── */
.wt-cal-gantt-wrap{position:relative}
/* ★ 甘特区拉满全宽 */
.wt-cal-gantt{position:relative;width:100%;min-height:300px}
.wt-cal-glines{position:absolute;inset:0;pointer-events:none;z-index:0}
.wt-cal-gline{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.018)}
[data-theme="light"] .wt-cal-gline{background:rgba(0,0,0,.03)}
.wt-cal-today-line{
  position:absolute;top:0;bottom:0;width:1px;z-index:2;
  background:var(--c-primary);opacity:.35;
  box-shadow:0 0 6px var(--c-primary);
  pointer-events:none
}
.wt-cal-tgrp{position:relative;z-index:1;border-bottom:1px solid rgba(255,255,255,.02)}
[data-theme="light"] .wt-cal-tgrp{border-bottom-color:rgba(0,0,0,.04)}
.wt-cal-track-row{position:relative;height:42px;border-bottom:1px solid rgba(255,255,255,.012);transition:background .12s}
[data-theme="light"] .wt-cal-track-row{border-bottom-color:rgba(0,0,0,.025)}
.wt-cal-track-row:hover{background:rgba(128,128,128,.015)}

/* ── 分类行标题 ── */
.wt-cal-cat-row{
  position:relative;height:28px;display:flex;align-items:center;gap:6px;
  padding-left:8px;border-bottom:1px solid rgba(255,255,255,.02);
  background:rgba(0,0,0,.12)
}
[data-theme="light"] .wt-cal-cat-row{background:rgba(0,0,0,.03);border-bottom-color:rgba(0,0,0,.06)}
.wt-cal-cat-dot{width:6px;height:6px;border-radius:1px;flex-shrink:0}
.wt-cal-cat-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ak-text-dim)}
.wt-cal-cat-cnt{font-size:8px;color:var(--c-primary);font-family:var(--ak-mono);opacity:.7}

/* ════════════════════════════════════════════════════════════════
   日程条 
   ════════════════════════════════════════════════════════════════ */
.wt-cal-bar{
  position:absolute;top:5px;height:32px;
  border-radius:1px;
  display:flex;align-items:center;
  cursor:pointer;overflow:hidden;z-index:2;
  transition:box-shadow .15s,transform .15s;
  border:1px solid transparent;
  clip-path:polygon(0 0,100% 0,100% 100%,6px 100%,0 calc(100% - 6px))
}
.wt-cal-bar:hover{transform:translateY(-1px);z-index:5}
.wt-cal-bar-mark{width:3px;height:100%;flex-shrink:0}
.wt-cal-bar-body{
  flex:1;padding:0 10px 0 8px;display:flex;align-items:center;gap:8px;
  min-width:0;overflow:hidden;height:100%
}
.wt-cal-bar-name{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;letter-spacing:.03em}
.wt-cal-bar-dates{font-size:9px;opacity:.6;white-space:nowrap;flex-shrink:0;font-family:var(--ak-mono);letter-spacing:.04em}

/* ── 折扣活动 · 琥珀 ── */
.bar-discount{background:rgba(217,119,6,.2);border-color:rgba(245,158,11,.3)}
.bar-discount .wt-cal-bar-mark{background:#f59e0b}
.bar-discount .wt-cal-bar-name{color:#fcd34d}
.bar-discount .wt-cal-bar-dates{color:#fbbf24}
.bar-discount:hover{box-shadow:0 0 0 1px rgba(245,158,11,.35),0 2px 12px rgba(245,158,11,.12)}
[data-theme="light"] .bar-discount{background:rgba(217,119,6,.1);border-color:rgba(217,119,6,.22)}
[data-theme="light"] .bar-discount .wt-cal-bar-mark{background:#b45309}
[data-theme="light"] .bar-discount .wt-cal-bar-name{color:#92400e}
[data-theme="light"] .bar-discount .wt-cal-bar-dates{color:#78350f}

/* ── 纪念日 · 紫罗兰 ── */
.bar-memorial{background:rgba(139,92,246,.18);border-color:rgba(139,92,246,.3)}
.bar-memorial .wt-cal-bar-mark{background:#a855f7}
.bar-memorial .wt-cal-bar-name{color:#d8b4fe}
.bar-memorial .wt-cal-bar-dates{color:#c084fc}
.bar-memorial:hover{box-shadow:0 0 0 1px rgba(139,92,246,.35),0 2px 12px rgba(139,92,246,.1)}
[data-theme="light"] .bar-memorial{background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.2)}
[data-theme="light"] .bar-memorial .wt-cal-bar-mark{background:#7c3aed}
[data-theme="light"] .bar-memorial .wt-cal-bar-name{color:#6d28d9}
[data-theme="light"] .bar-memorial .wt-cal-bar-dates{color:#5b21b6}

/* ── 载具活动 · 天蓝 ── */
.bar-vehicle{background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.28)}
.bar-vehicle .wt-cal-bar-mark{background:#3b82f6}
.bar-vehicle .wt-cal-bar-name{color:#bfdbfe}
.bar-vehicle .wt-cal-bar-dates{color:#93c5fd}
.bar-vehicle:hover{box-shadow:0 0 0 1px rgba(59,130,246,.35),0 2px 12px rgba(59,130,246,.1)}
[data-theme="light"] .bar-vehicle{background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.2)}
[data-theme="light"] .bar-vehicle .wt-cal-bar-mark{background:#2563eb}
[data-theme="light"] .bar-vehicle .wt-cal-bar-name{color:#1e40af}
[data-theme="light"] .bar-vehicle .wt-cal-bar-dates{color:#1e3a8a}

/* ── 史海拾遗 · 翠绿 ── */
.bar-history{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.26)}
.bar-history .wt-cal-bar-mark{background:#22c55e}
.bar-history .wt-cal-bar-name{color:#bbf7d0}
.bar-history .wt-cal-bar-dates{color:#86efac}
.bar-history:hover{box-shadow:0 0 0 1px rgba(34,197,94,.3),0 2px 12px rgba(34,197,94,.08)}
[data-theme="light"] .bar-history{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.2)}
[data-theme="light"] .bar-history .wt-cal-bar-mark{background:#16a34a}
[data-theme="light"] .bar-history .wt-cal-bar-name{color:#166534}
[data-theme="light"] .bar-history .wt-cal-bar-dates{color:#14532d}

/* ── 通行证 · 赤红 ── */
.bar-battlepass{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.28)}
.bar-battlepass .wt-cal-bar-mark{background:#ef4444}
.bar-battlepass .wt-cal-bar-name{color:#fecaca}
.bar-battlepass .wt-cal-bar-dates{color:#fca5a5}
.bar-battlepass:hover{box-shadow:0 0 0 1px rgba(239,68,68,.35),0 2px 12px rgba(239,68,68,.1)}
[data-theme="light"] .bar-battlepass{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}
[data-theme="light"] .bar-battlepass .wt-cal-bar-mark{background:#dc2626}
[data-theme="light"] .bar-battlepass .wt-cal-bar-name{color:#991b1b}
[data-theme="light"] .bar-battlepass .wt-cal-bar-dates{color:#7f1d1d}

/* ════════════════════════════════════════════════════════════════
   详情浮层 · Arknights 情报面板
   ════════════════════════════════════════════════════════════════ */
.wt-cal-tip{
  position:fixed;z-index:9000;
  background:#1a1b1e;
  border:1px solid rgba(255,255,255,.18);
  border-radius:1px;padding:0;
  box-shadow:0 8px 32px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.06);
  pointer-events:none;opacity:0;transition:opacity .12s;max-width:300px;min-width:200px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%);
  overflow:hidden
}
[data-theme="light"] .wt-cal-tip{
  background:#ffffff;
  border-color:rgba(0,0,0,.18);
  box-shadow:0 8px 32px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.06)
}
.wt-cal-tip.show{opacity:1}

.wt-cal-tip-hdr{
  padding:8px 14px;display:flex;align-items:center;gap:8px;
  border-bottom:1px solid var(--ak-border);position:relative;overflow:hidden
}
.wt-cal-tip-hdr::before{content:'';position:absolute;inset:0;opacity:.08}
.wt-cal-tip-cat-dot{width:8px;height:8px;border-radius:1px;flex-shrink:0}
.wt-cal-tip-cat-name{font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.wt-cal-tip-hdr-accent{
  position:absolute;bottom:0;left:0;width:60px;height:1px;
  background:var(--c-primary);box-shadow:0 0 6px var(--c-primary)
}

.wt-cal-tip-body{padding:10px 14px 12px}
.wt-cal-tip-name{font-size:13px;font-weight:700;letter-spacing:.03em;margin-bottom:6px;line-height:1.3}

.wt-cal-tip-date-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.wt-cal-tip-date-icon{width:12px;height:12px;border-radius:1px;background:var(--c-primary);opacity:.2;flex-shrink:0;position:relative}
.wt-cal-tip-date-icon::after{content:'';position:absolute;inset:2px;border-radius:50%;background:var(--c-primary);opacity:.6}
.wt-cal-tip-date{font-size:11px;color:var(--c-primary);font-family:var(--ak-mono);letter-spacing:.04em;opacity:.85}

.wt-cal-tip-duration{font-size:9px;color:var(--ak-text-dim);letter-spacing:.06em;margin-bottom:8px;padding-left:18px}
.wt-cal-tip-sep{height:1px;background:var(--ak-border);margin:6px 0 8px}
.wt-cal-tip-desc{font-size:11px;color:var(--ak-text-dim);line-height:1.6}

/* ── 编辑 UI ── */
.wt-cal-edit-fab{position:absolute;bottom:16px;right:16px;z-index:10;display:none;gap:6px}
.wt-cal-edit-fab.visible{display:flex}
.wt-cal-edit-btn{
  padding:6px 14px;border-radius:1px;border:1px solid var(--ak-border);
  background:var(--ak-bg-panel);color:var(--ak-text-dim);font-size:10px;font-weight:600;
  cursor:pointer;transition:all .15s;letter-spacing:.06em;text-transform:uppercase;
  font-family:'Chakra Petch',sans-serif
}
.wt-cal-edit-btn:hover{border-color:var(--c-primary);color:var(--c-primary)}
.wt-cal-edit-btn.active{background:var(--c-primary);color:#000;border-color:var(--c-primary)}

.wt-cal-form{
  display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;
  width:400px;max-width:92vw;
  background:var(--ak-bg-panel);border:1px solid var(--ak-border-accent);
  border-radius:1px;padding:20px;
  box-shadow:0 12px 40px rgba(0,0,0,.6),0 0 0 1px rgba(128,128,128,.06);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)
}
.wt-cal-form.show{display:block}
.wt-cal-form-title{
  font-size:13px;font-weight:700;margin-bottom:16px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--c-primary);
  padding-bottom:10px;border-bottom:1px solid var(--ak-border)
}
.wt-cal-form-field{margin-bottom:10px}
.wt-cal-form-label{display:block;font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--ak-text-dim);margin-bottom:3px;text-transform:uppercase}
.wt-cal-form-input,.wt-cal-form-select,.wt-cal-form-textarea{
  width:100%;padding:6px 8px;border-radius:1px;border:1px solid var(--ak-border);
  background:var(--ak-bg-card);color:var(--ak-text);font-size:12px;
  font-family:inherit;transition:border-color .15s
}
.wt-cal-form-input:focus,.wt-cal-form-select:focus,.wt-cal-form-textarea:focus{outline:none;border-color:var(--c-primary)}
.wt-cal-form-textarea{min-height:50px;resize:vertical}
.wt-cal-form-row{display:flex;gap:8px}
.wt-cal-form-row .wt-cal-form-field{flex:1}
.wt-cal-form-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:14px}
.wt-cal-form-btn{
  padding:5px 14px;border-radius:1px;font-size:10px;font-weight:600;cursor:pointer;
  border:1px solid var(--ak-border);background:transparent;color:var(--ak-text-dim);
  transition:all .15s;letter-spacing:.06em;text-transform:uppercase;
  font-family:'Chakra Petch',sans-serif
}
.wt-cal-form-btn:hover{border-color:var(--c-primary);color:var(--c-primary)}
.wt-cal-form-btn.primary{background:var(--c-primary);color:#000;border-color:var(--c-primary)}
.wt-cal-form-btn.danger{color:#ef4444;border-color:rgba(239,68,68,.25)}
.wt-cal-form-btn.danger:hover{background:rgba(239,68,68,.06);border-color:#ef4444}
.wt-cal-form-overlay{display:none;position:absolute;inset:0;z-index:49;background:rgba(0,0,0,.4)}
.wt-cal-form-overlay.show{display:block}

.wt-cal-bar.editing{outline:1px dashed var(--c-primary);outline-offset:0;cursor:pointer}
.wt-cal-bar.editing:hover{outline-style:solid}
.wt-cal-bar.edit-selected{outline:1px solid var(--c-primary);outline-offset:0;box-shadow:0 0 8px var(--c-primary)}
