:root {
  --bg-primary: #0f172a;
  --bg-card: #1a2942;
  --bg-card-hover: #223354;
  --text-primary: #ffffff;
  --text-secondary: #e5edfa;
  --text-muted: #8ea5c9;
  --accent: #38bdf8;
  --accent2: #a78bfa;
  --accent3: #34d399;
  --accent-warn: #fbbf24;
  --accent-danger: #f87171;
  --border: #2d4470;
  --glow-blue: rgba(96,165,250,.15);
  --glow-purple: rgba(167,139,250,.1);
  --radius: 14px;
  --radius-sm: 8px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }



/* 亮色主题（默认深色） */
[data-theme="light"] {
  --bg-primary: #f0f4ff;
  --bg-card: #ffffff;
  --bg-card-hover: #eef2ff;
  --text-primary: #1e293b;
  --text-secondary: #475569;
  --text-muted: #94a3b8;
  --accent: #2563eb;
  --accent2: #8b5cf6;
  --accent3: #059669;
  --accent-warn: #d97706;
  --accent-danger: #dc2626;
  --border: #d1d9e6;
  --glow-blue: rgba(37,99,235,.08);
  --glow-purple: rgba(139,92,246,.06);
}
[data-theme="light"] body {
  background: linear-gradient(135deg, #eef2ff 0%, #f8fafc 50%, #eef2ff 100%);
}
[data-theme="light"] .header,
[data-theme="light"] .nav {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(12px);
  border-color: #d1d9e6;
}
[data-theme="light"] .cal-cell {
  background: #ffffff;
  border-color: #d1d9e6;
}
[data-theme="light"] .cal-cell:hover {
  border-color: var(--accent);
  box-shadow: 0 4px 20px rgba(37,99,235,.15);
}
[data-theme="light"] .cal-cell.today {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent), 0 0 20px rgba(37,99,235,.2);
}
[data-theme="light"] .detail-panel,
[data-theme="light"] .report-panel {
  background: #ffffff;
  border-color: #d1d9e6;
}
[data-theme="light"] .report-preview {
  background: #f8fafc;
  color: #1e293b;
}


[data-theme="vibrant"] {
  --bg-primary: #0d0221;
  --bg-card: #1a0a3e;
  --bg-card-hover: #2d1b69;
  --text-primary: #ffffff;
  --text-secondary: #e0d4ff;
  --text-muted: #b8a9e8;
  --accent: #ff3366;
  --accent2: #ffd700;
  --accent3: #00ff88;
  --accent-warn: #ff8800;
  --accent-danger: #ff4466;
  --border: #3d2099;
  --glow-blue: rgba(255,51,102,.12);
  --glow-purple: rgba(255,215,0,.08);
}
[data-theme="vibrant"] body {
  background: linear-gradient(135deg, #0d0221 0%, #1a0a3e 30%, #100033 60%, #0d0221 100%);
}
[data-theme="vibrant"] .header,
[data-theme="vibrant"] .nav {
  background: linear-gradient(135deg, #1a0a3e 0%, #2d1b69 50%, #1a0a3e 100%);
  border-color: #3d2099;
  backdrop-filter: blur(10px);
}
[data-theme="vibrant"] .progress-bar-fill {
  background: linear-gradient(90deg, #ff3366, #ffd700, #00ff88, #3366ff);
}
[data-theme="vibrant"] .cal-cell {
  background: linear-gradient(135deg, #1a0a3e 0%, #150535 100%);
  border-color: #3d2099;
}
[data-theme="vibrant"] .cal-cell:hover {
  border-color: #ff3366;
  box-shadow: 0 4px 20px rgba(255,51,102,.3);
}
[data-theme="vibrant"] .cal-cell.today {
  border-color: #ffd700;
  box-shadow: 0 0 0 1px #ffd700, 0 0 25px rgba(255,215,0,.35);
}
[data-theme="vibrant"] .cal-cell.has-work {
  border-left: 3px solid #ff3366;
}
[data-theme="vibrant"] .cal-cell.has-location {
  border-bottom: 2px solid #ffd700;
}
[data-theme="vibrant"] .header-title {
  background: linear-gradient(135deg, #ff3366, #ffd700, #00ff88);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
[data-theme="vibrant"] .detail-panel,
[data-theme="vibrant"] .report-panel {
  background: linear-gradient(135deg, #1a0a3e 0%, #150535 100%);
  border-color: #3d2099;
}
[data-theme="vibrant"] .report-preview {
  background: #0d0221;
  color: #ffffff;
}

/* ====== 深蓝主题 ====== */
[data-theme="deepblue"] {
  --bg-primary: #0b0e14;
  --bg-secondary: #141a24;
  --bg-card: #1a2230;
  --bg-header: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  --text: #e8d5b7;
  --text-muted: #8b7355;
  --text-secondary: #c4a97c;
  --border: #2a2a3e;
  --accent: #e6b422;
  --accent2: #d4402a;
  --accent3: #2d7d9a;
  --accent-danger: #b22222;
}
[data-theme="deepblue"] body {
  background-image:
    /* 深蓝主题背景 - 深蓝星空 */
    url("images/deepblue_bg.jpg"),
    linear-gradient(rgba(8,10,16,0.82), rgba(12,16,24,0.88)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(230,180,34,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(212,64,42,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(45,125,154,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(230,180,34,0.03) 50px, rgba(230,180,34,0.03) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(212,64,42,0.02) 50px, rgba(212,64,42,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;}
[data-theme="deepblue"] .header-title {
  background: linear-gradient(135deg, #e6b422, #d4402a, #e6b422);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="deepblue"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(230,180,34,0.25), rgba(212,64,42,0.15));
  border-color: #e6b422;
  box-shadow: 0 0 12px rgba(230,180,34,0.3);
}
[data-theme="deepblue"] .cal-cell.has-work {
  border-left: 3px solid #e6b422;
}
[data-theme="deepblue"] .cal-cell.has-location {
  border-bottom: 2px solid #d4402a;
}
[data-theme="deepblue"] .detail-panel,
[data-theme="deepblue"] .report-panel {
  background: linear-gradient(135deg, #0e141f 0%, #151f2e 100%);
  border-color: #3a3a4e;
}
[data-theme="deepblue"] .header {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
}

/* ====== 云白主题 ====== */
[data-theme="cloudwhite"] {
  --bg-primary: #0a0d14;
  --bg-secondary: #11141f;
  --bg-card: #161b2b;
  --bg-header: linear-gradient(135deg, #0a1628 0%, #1a2a4a 50%, #0a1628 100%);
  --text: #8fc9ff;
  --text-muted: #5a7a9a;
  --border: #1a2a3e;
  --accent: #ff3333;
  --accent2: #2a7fff;
  --accent3: #40cc40;
  --accent-danger: #cc0000;
  --text-secondary: #70a8e0;
}
[data-theme="cloudwhite"] body {
  background-image:
    /* 云白主题背景 - 纯白简约 */
    url("images/cloudwhite_bg.jpg"),
    linear-gradient(rgba(6,8,16,0.84), rgba(10,14,24,0.90)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(255,51,51,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(42,127,255,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(64,204,64,0.04) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(42,127,255,0.03) 50px, rgba(42,127,255,0.03) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(255,51,51,0.02) 50px, rgba(255,51,51,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;}
[data-theme="cloudwhite"] .header-title {
  background: linear-gradient(135deg, #ff3333, #2a7fff);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="cloudwhite"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(255,51,51,0.2), rgba(42,127,255,0.15));
  border-color: #ff3333;
  box-shadow: 0 0 12px rgba(255,51,51,0.3);
}
[data-theme="cloudwhite"] .cal-cell.has-work {
  border-left: 3px solid #2a7fff;
}
[data-theme="cloudwhite"] .cal-cell.has-location {
  border-bottom: 2px solid #ff3333;
}
[data-theme="cloudwhite"] .detail-panel,
[data-theme="cloudwhite"] .report-panel {
  background: linear-gradient(135deg, #0a1220 0%, #0f1a2e 100%);
  border-color: #1a3a5a;
}
[data-theme="cloudwhite"] .header {
  background: linear-gradient(135deg, #0a1628 0%, #1a2a4a 50%, #0a1628 100%);
}

/* ====== 幻彩主题 ====== */
[data-theme="aurora"] {
  --bg-primary: #0e0e12;
  --bg-secondary: #181820;
  --bg-card: #20202e;
  --bg-header: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 50%, #1a1a2e 100%);
  --text: #c0c0e0;
  --text-muted: #6a6a8a;
  --text-secondary: #a0a0c0;
  --border: #2a2a3e;
  --accent: #e04040;
  --accent2: #4080ff;
  --accent3: #e0c040;
  --accent-danger: #ff2020;
}
[data-theme="aurora"] body {
  background-image:
    /* 幻彩主题背景 - 紫青幻彩 */
    url("images/aurora_bg.jpg"),
    linear-gradient(rgba(8,8,16,0.84), rgba(12,12,20,0.90)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(224,64,64,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(64,128,255,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(224,192,64,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(64,128,255,0.03) 50px, rgba(64,128,255,0.03) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(224,64,64,0.02) 50px, rgba(224,64,64,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;}
[data-theme="aurora"] .header-title {
  background: linear-gradient(135deg, #e04040, #4080ff, #e0c040);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="aurora"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(224,64,64,0.2), rgba(64,128,255,0.15));
  border-color: #e04040;
  box-shadow: 0 0 12px rgba(224,64,64,0.3);
}
[data-theme="aurora"] .cal-cell.has-work {
  border-left: 3px solid #4080ff;
}
[data-theme="aurora"] .cal-cell.has-location {
  border-bottom: 2px solid #e0c040;
}
[data-theme="aurora"] .detail-panel,
[data-theme="aurora"] .report-panel {
  background: linear-gradient(135deg, #0e0e18 0%, #181828 100%);
  border-color: #3a2a3e;
}
[data-theme="aurora"] .header {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 50%, #1a1a2e 100%);
}

/* ====== 海贼王主题 ====== */
[data-theme="onepiece"] {
  --bg-primary: #0e0c08;
  --bg-secondary: #1a1410;
  --bg-card: #221b14;
  --bg-header: linear-gradient(135deg, #1a1410 0%, #2a1e14 100%);
  --text: #e8e0d0;
  --text-muted: #8a7a6a;
  --text-secondary: #c0b0a0;
  --border: #2a221a;
  --accent: #f0a030;
  --accent2: #d04030;
  --accent3: #e0c040;
  --accent-danger: #ff3030;
  --bg-card-hover: #2a2018;
}
[data-theme="onepiece"] body {
  background-image:
    url("images/onepiece_bg.jpg"),
    linear-gradient(rgba(10,8,6,0.80), rgba(20,14,10,0.85)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(240,160,48,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(208,64,48,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(224,192,64,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(240,160,48,0.025) 50px, rgba(240,160,48,0.025) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(208,64,48,0.02) 50px, rgba(208,64,48,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;
}
[data-theme="onepiece"] .header-title {
  background: linear-gradient(135deg, #f0a030, #d04030, #e0c040);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="onepiece"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(240,160,48,0.2), rgba(208,64,48,0.1));
  border-color: #f0a030;
  box-shadow: 0 0 12px rgba(240,160,48,0.3);
}
[data-theme="onepiece"] .cal-cell.has-work { border-left: 3px solid #f0a030; }
[data-theme="onepiece"] .cal-cell.has-location { border-bottom: 2px solid #d04030; }
[data-theme="onepiece"] .detail-panel,
[data-theme="onepiece"] .report-panel {
  background: linear-gradient(135deg, #0e0c10 0%, #1a1418 100%);
  border-color: #3a2a1a;
}
[data-theme="onepiece"] .header {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e14 100%);
}

/* ====== 高达主题 ====== */
[data-theme="gundam"] {
  --bg-primary: #0a0e18;
  --bg-secondary: #101828;
  --bg-card: #162030;
  --bg-header: linear-gradient(135deg, #0e1830 0%, #1a2840 100%);
  --text: #c0d0e8;
  --text-muted: #6a7a8a;
  --text-secondary: #90a8c0;
  --border: #203050;
  --accent: #3070e0;
  --accent2: #e03030;
  --accent3: #e0e0e0;
  --accent-danger: #ff3030;
  --bg-card-hover: #1e2840;
}
[data-theme="gundam"] body {
  background-image:
    url("images/gundam_bg.jpg"),
    linear-gradient(rgba(8,12,20,0.82), rgba(12,18,28,0.88)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(48,112,224,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(224,48,48,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(224,224,224,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(48,112,224,0.03) 50px, rgba(48,112,224,0.03) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(224,48,48,0.02) 50px, rgba(224,48,48,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;
}
[data-theme="gundam"] .header-title {
  background: linear-gradient(135deg, #3070e0, #e03030, #e0e0e0);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="gundam"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(48,112,224,0.2), rgba(224,48,48,0.1));
  border-color: #3070e0;
  box-shadow: 0 0 12px rgba(48,112,224,0.3);
}
[data-theme="gundam"] .cal-cell.has-work { border-left: 3px solid #3070e0; }
[data-theme="gundam"] .cal-cell.has-location { border-bottom: 2px solid #e03030; }
[data-theme="gundam"] .detail-panel,
[data-theme="gundam"] .report-panel {
  background: linear-gradient(135deg, #0a1018 0%, #101828 100%);
  border-color: #203050;
}
[data-theme="gundam"] .header {
  background: linear-gradient(135deg, #0e1830 0%, #1a2840 100%);
}

/* ====== 灌篮高手主题 ====== */
[data-theme="slamdunk"] {
  --bg-primary: #0e0808;
  --bg-secondary: #181010;
  --bg-card: #221818;
  --bg-header: linear-gradient(135deg, #1a100e 0%, #2a1a14 100%);
  --text: #e8d0c0;
  --text-muted: #8a6a5a;
  --text-secondary: #c0a090;
  --border: #2a1a1a;
  --accent: #e04030;
  --accent2: #f0a030;
  --accent3: #d08020;
  --accent-danger: #ff2020;
  --bg-card-hover: #282020;
}
[data-theme="slamdunk"] body {
  background-image:
    url("images/slamdunk_bg.jpg"),
    linear-gradient(rgba(10,6,6,0.82), rgba(18,10,8,0.88)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(224,64,48,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(240,160,48,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(208,128,32,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(224,64,48,0.025) 50px, rgba(224,64,48,0.025) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(240,160,48,0.02) 50px, rgba(240,160,48,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;
}
[data-theme="slamdunk"] .header-title {
  background: linear-gradient(135deg, #e04030, #f0a030, #d08020);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="slamdunk"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(224,64,48,0.2), rgba(240,160,48,0.1));
  border-color: #e04030;
  box-shadow: 0 0 12px rgba(224,64,48,0.3);
}
[data-theme="slamdunk"] .cal-cell.has-work { border-left: 3px solid #e04030; }
[data-theme="slamdunk"] .cal-cell.has-location { border-bottom: 2px solid #f0a030; }
[data-theme="slamdunk"] .detail-panel,
[data-theme="slamdunk"] .report-panel {
  background: linear-gradient(135deg, #0e080a 0%, #181010 100%);
  border-color: #2a1a1a;
}
[data-theme="slamdunk"] .header {
  background: linear-gradient(135deg, #1a100e 0%, #2a1a14 100%);
}

/* ====== 变形金刚主题 ====== */
[data-theme="transformers"] {
  --bg-primary: #0a0c10;
  --bg-secondary: #101420;
  --bg-card: #181c30;
  --bg-header: linear-gradient(135deg, #0e1420 0%, #1a2030 100%);
  --text: #c0c8e0;
  --text-muted: #6a7a8a;
  --text-secondary: #90a0c0;
  --border: #2a2a3e;
  --accent: #e04040;
  --accent2: #3070e0;
  --accent3: #e0c040;
  --accent-danger: #ff2020;
  --bg-card-hover: #1e2840;
}
[data-theme="transformers"] body {
  background-image:
    url("images/transformers_bg.jpg"),
    linear-gradient(rgba(8,10,16,0.84), rgba(12,14,22,0.90)),
    radial-gradient(ellipse 700px 500px at 8% 25%, rgba(224,64,64,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, rgba(48,112,224,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(224,192,64,0.05) 0%, transparent 65%),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(48,112,224,0.03) 50px, rgba(48,112,224,0.03) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(224,64,64,0.02) 50px, rgba(224,64,64,0.02) 51px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;
}
[data-theme="transformers"] .header-title {
  background: linear-gradient(135deg, #e04040, #3070e0, #e0c040);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="transformers"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(224,64,64,0.2), rgba(48,112,224,0.1));
  border-color: #e04040;
  box-shadow: 0 0 12px rgba(224,64,64,0.3);
}
[data-theme="transformers"] .cal-cell.has-work { border-left: 3px solid #3070e0; }
[data-theme="transformers"] .cal-cell.has-location { border-bottom: 2px solid #e0c040; }
[data-theme="transformers"] .detail-panel,
[data-theme="transformers"] .report-panel {
  background: linear-gradient(135deg, #0a0c18 0%, #10142a 100%);
  border-color: #2a3a4e;
}
[data-theme="transformers"] .header {
  background: linear-gradient(135deg, #0e1420 0%, #1a2030 100%);
}

/* ====== 自定义主题（用户上传背景）====== */
[data-theme="custom"] {
  --bg-primary: #0a0c14;
  --bg-secondary: #11141f;
  --bg-card: #161b2b;
  --bg-header: linear-gradient(135deg, #0e141f 0%, #1a2030 100%);
  --text: #e0e0e8;
  --text-muted: #7a7a8a;
  --text-secondary: #b0b0c0;
  --border: #2a2a3e;
  --accent: #3b82f6;
  --accent2: #8b5cf6;
  --accent3: #34d399;
  --accent-danger: #ef4444;
  --bg-card-hover: #1e2840;
}
[data-theme="custom"] .header-title {
  background: linear-gradient(135deg, #3b82f6, #8b5cf6, #34d399);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 900;
}
[data-theme="custom"] .cal-cell.today {
  background: linear-gradient(135deg, rgba(59,130,246,0.2), rgba(139,92,246,0.1));
  border-color: #3b82f6;
  box-shadow: 0 0 12px rgba(59,130,246,0.3);
}
[data-theme="custom"] .cal-cell.has-work { border-left: 3px solid #3b82f6; }
[data-theme="custom"] .cal-cell.has-location { border-bottom: 2px solid #8b5cf6; }
[data-theme="custom"] .detail-panel,
[data-theme="custom"] .report-panel {
  background: linear-gradient(135deg, #0e141f 0%, #151f2e 100%);
  border-color: #3a3a4e;
}
[data-theme="custom"] .header {
  background: linear-gradient(135deg, #0e141f 0%, #1a2030 100%);
}
[data-theme="vibrant"] .nav-btn:hover {
  border-color: #ff3366;
  background: #2d1b69;
}
[data-theme="vibrant"] .today-btn {
  background: linear-gradient(135deg, #ff3366, #ff8800);
  color: #fff;
}
[data-theme="vibrant"] .today-btn:hover {
  background: linear-gradient(135deg, #ff4466, #ff9900);
}
body {
  background: linear-gradient(135deg, #1a0a2e 0%, #2d1b4e 50%, #1a0a2e 100%);
}
[data-theme="vibrant"] .header,
[data-theme="vibrant"] .nav {
  background: linear-gradient(135deg, #2d1b4e 0%, #3d2870 100%);
  border-color: #4a3680;
  backdrop-filter: blur(10px);
}
[data-theme="vibrant"] .cal-cell {
  background: #2d1b4e;
  border-color: #4a3680;
}
[data-theme="vibrant"] .cal-cell:hover {
  border-color: var(--accent);
  box-shadow: 0 4px 20px rgba(255,107,107,.25);
}
[data-theme="vibrant"] .cal-cell.today {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent), 0 0 20px rgba(255,107,107,.3);
}
[data-theme="vibrant"] .cal-cell.has-work { border-left: 3px solid var(--accent); }
[data-theme="vibrant"] .cal-cell.has-location { border-bottom: 2px solid var(--accent2); }
[data-theme="vibrant"] .detail-panel,
[data-theme="vibrant"] .report-panel {
  background: #2d1b4e;
  border-color: #4a3680;
}
[data-theme="vibrant"] .report-preview {
  background: #1a0a2e;
  color: #ffffff;
}
body {
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background: var(--bg-primary);
  color: var(--text-primary);
  overflow-x: hidden;
  overflow-y: auto;         /* 允许纵向滚动, 内容撑开而不被裁剪(修复WebView内100vh异常导致高度塌陷/内容显示不全) */
  min-height: 100vh;        /* 不用固定 height:100vh, 用 min-height 让内容可撑开 */
  height: auto;
  background-image:
    /* 项目背景图 */
    
    /* 暗色遮罩渐变 */
    linear-gradient(rgba(15,20,32,.78), rgba(15,20,32,.85)),
    /* 三大光晕 */
    radial-gradient(ellipse 700px 500px at 8% 25%, var(--glow-blue) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 88% 18%, var(--glow-purple) 0%, transparent 65%),
    radial-gradient(ellipse 500px 600px at 50% 88%, rgba(52,211,153,.06) 0%, transparent 65%),
    /* 网格线 */
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(96,165,250,.035) 50px, rgba(96,165,250,.035) 51px),
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(167,139,250,.025) 50px, rgba(167,139,250,.025) 51px),
    /* 斜向装饰线 */
    repeating-linear-gradient(45deg, transparent, transparent 120px, rgba(96,165,250,.012) 120px, rgba(96,165,250,.012) 121px),
    repeating-linear-gradient(-45deg, transparent, transparent 150px, rgba(167,139,250,.01) 150px, rgba(167,139,250,.01) 151px);
  background-size: cover, 100% 100%, auto, auto, auto, auto, auto, auto, auto, auto, auto;
  background-attachment: fixed, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll;
  background-blend-mode: normal, normal, normal;  
}

/* Background decorative elements */
/* Background decorative elements */
body::before {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(circle, rgba(96,165,250,.07) 1px, transparent 1px),
    radial-gradient(circle, rgba(167,139,250,.04) 1px, transparent 1px);
  background-size: 28px 28px, 28px 28px;
  background-position: 0 0, 14px 14px;
}

/* 几何装饰 */
body::after {
  content: ''; position: fixed;
  top: 60px; left: 30px;
  width: 80px; height: 80px;
  border: 1px solid rgba(96,165,250,.1);
  transform: rotate(30deg);
  pointer-events: none; z-index: 0;
  border-radius: 12px;
}

.deco-rhombus {
  position: fixed; bottom: 40px; right: 40px;
  width: 120px; height: 120px;
  border: 1px solid rgba(167,139,250,.08);
  transform: rotate(45deg);
  pointer-events: none; z-index: 0;
  border-radius: 16px;
}

.deco-circle {
  position: fixed; top: 100px; left: 60px;
  width: 40px; height: 40px;
  border: 1px solid rgba(52,211,153,.07);
  border-radius: 50%;
  pointer-events: none; z-index: 0;
}

.app {
  position: relative; z-index: 1;
  max-width: min(92vw, 1400px); margin: 0 auto; padding: 8px 14px;
  width: 100%;
  min-height: 100vh;    /* 不用固定 height:100vh(WebView内vh异常会塌陷), 让内容撑开 */
  height: auto;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

/* 背景图加载后的备用 */

/* ===== Header ===== */
.header {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  padding: 10px 18px; margin-bottom: 10px;
  background: linear-gradient(135deg, #1a2942 0%, #1e3050 100%); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}
.header-left { display: flex; align-items: center; gap: 10px; }
.logo { font-size: 26px; }
.header-title {
  font-size: 18px; font-weight: 700;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
.header-subtitle { font-size: 11px; color: var(--text-muted); }
.header-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; overflow: visible; }
.ds-badge {
  font-size: 11px; padding: 2px 10px; border-radius: 10px;
  background: var(--bg-card); border: 1px solid var(--border);
  color: var(--text-muted); cursor: default;
  display: inline-flex; align-items: center; gap: 4px;
  white-space: nowrap;
}
.ds-badge .ds-svg-wrap {
  display: inline-flex; align-items: center;
  height: 16px; width: auto;
}
.ds-badge .ds-svg-wrap svg {
  height: 16px; width: auto;
  display: block;
  color: #4D6BFE;
}
.ds-badge .ds-bal { color: var(--accent3); font-weight: 700; font-size: 12px; }
.ds-badge:hover { border-color: var(--accent2); background: var(--bg-card-hover); }

/* ===== AI 消费趋势弹窗 ===== */
.ds-chart-overlay {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px); z-index: 300;
}
.ds-chart-overlay.active { display: block; }
.ds-chart-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%);
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 20px; z-index: 301;
  min-width: 380px; max-width: 520px; max-height: 70%;
  display: none; box-shadow: 0 20px 60px rgba(0,0,0,.4);
  flex-direction: column;
}
.ds-chart-modal.open { display: flex; }
.ds-chart-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.ds-chart-title { font-size: 15px; font-weight: 700; color: var(--text-primary); }
.ds-chart-close {
  background: none; border: none; color: var(--text-muted);
  font-size: 18px; cursor: pointer; padding: 4px 8px;
  border-radius: 4px; transition: all .2s;
}
.ds-chart-close:hover { background: var(--bg-primary); color: var(--text-primary); }
.ds-chart-body {
  overflow-y: auto; flex: 1; min-height: 100px;
}
.ds-chart-footer {
  display: flex; align-items: center; gap: 8px;
  padding-top: 10px; margin-top: 10px;
  border-top: 1px solid var(--border);
}
.health-dot {
  width: 8px; height: 8px; border-radius: 50%; display: inline-block;
  transition: background .3s, box-shadow .3s;
}
.health-dot.ok { background: var(--accent3); box-shadow: 0 0 6px var(--accent3); }
.health-dot.err { background: var(--accent-danger); box-shadow: 0 0 6px var(--accent-danger); }
.health-label { font-size: 11px; color: var(--text-muted); }

/* ===== Nav ===== */
.nav {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  padding: 8px 14px; margin-bottom: 10px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  overflow: visible;
}
.nav-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nav-btn {
  background: none; border: 1px solid var(--border); color: var(--text-secondary);
  padding: 7px 14px; border-radius: var(--radius-sm); cursor: pointer;
  font-size: 13px; transition: all .2s; white-space: nowrap;
}
.nav-btn:hover { background: var(--bg-card-hover); color: var(--text-primary); border-color: var(--accent); }
.nav-btn:active { transform: scale(.96); }
.nav-month {
  font-size: 20px; font-weight: 700; min-width: 170px; text-align: center;
}
.theme-menu-item:hover { background: var(--bg-card-hover) !important; color: var(--text-primary) !important; }
.today-btn { background: var(--accent); color: #fff; border: none; font-weight: 600; }
.today-btn:hover { background: #3b82f6; color: #fff; border: none; }
.action-btn {
  display: inline-flex; align-items: center; gap: 5px;
}
.action-btn .icon { font-size: 14px; }

/* Progress Bar */
.progress-bar-wrap {
  width: 100%; height: 3px; background: var(--border);
  border-radius: 2px; overflow: hidden; margin-top: -6px; margin-bottom: 8px;
  opacity: 0; transition: opacity .3s;
}
.progress-bar-wrap.active { opacity: 1; }
.progress-bar-fill {
  height: 100%; width: 0%; border-radius: 2px;
  background: linear-gradient(90deg, #38bdf8, #a78bfa, #34d399);
  background-size: 200% 100%;
  animation: progressGlow 1.5s ease infinite;
  transition: width .4s ease;
}
@keyframes progressGlow {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ===== Calendar Grid ===== */
.cal-header {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
  margin-bottom: 3px;
}
.cal-header-cell {
  text-align: center; padding: 8px; font-size: 14px; font-weight: 700;
  color: var(--text-muted); letter-spacing: 1px;
}
.cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
  flex: 1;
  min-height: 0;
}
.cal-grid.month-view {
  grid-template-rows: repeat(6, 1fr);
  max-height: calc(100vh - 150px);
  min-height: 420px;
}
.cal-grid.month-view .cal-cell {
  min-height: 0;
}
.cal-cell {
  min-height: 100px; padding: 6px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 6px; cursor: pointer;
  transition: all .2s; position: relative; overflow: hidden;
}
.cal-cell::before {
  content: ''; position: absolute; inset: 0; opacity: 0;
  background: linear-gradient(135deg, rgba(96,165,250,.04), transparent);
  transition: opacity .2s;
}
.cal-cell:hover::before { opacity: 1; }
.cal-cell:hover { border-color: var(--accent); transform: translateY(-1px); box-shadow: 0 4px 20px rgba(96,165,250,.18); }
.cal-cell.other-month { opacity: .3; }
.cal-cell.today {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent), 0 0 20px rgba(96,165,250,.18);
}
.cal-cell.has-work { border-left: 3px solid #38bdf8; }
.cal-cell.has-location { border-bottom: 2px solid var(--accent2); }
.cal-day {
  font-size: 13px; font-weight: 600; margin-bottom: 4px;
  display: flex; align-items: center; justify-content: space-between;
}
.cal-day-num { font-size: 15px; font-weight: 700; }
.cal-cell.today .cal-day-num {
  background: var(--accent); color: #000; border-radius: 50%;
  width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px;
}
.cal-location {
  font-size: 9px; color: var(--accent2); margin-bottom: 3px;
  display: flex; align-items: center; gap: 2px;
}
.cal-items {
  list-style: none; font-size: 12px; color: var(--text-primary);
  line-height: 1.6;
}
.cal-items li {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  padding: 2px 4px; border-radius: 3px; transition: all .12s;
}
.cal-items li:hover { background: rgba(96,165,250,.12); color: #fff; }

/* Weekends */
.cal-cell:nth-child(7n) .cal-day-num,
.cal-cell:nth-child(7n+1) .cal-day-num { color: var(--accent-danger); }
.cal-cell.holiday .cal-day-num { color: var(--accent-danger); font-weight: 800; }

/* 周六日红字 */
.cal-cell.weekend .cal-day-num { color: var(--accent-danger); }
.cal-cell.weekend .cal-weekday { color: var(--accent-danger) !important; }
.cal-week-header .cal-weekday { font-size: 11px; color: var(--text-muted); display: block; }
.cal-cell-week.weekend .cal-weekday { color: var(--accent-danger) !important; }
.cal-cell-week.weekend .cal-day-num { color: var(--accent-danger) !important; }
.day-view-main.weekend .day-view-date .day-view-daynum { color: var(--accent-danger) !important; }
.day-view-main.weekend .day-view-date .day-view-meta { color: var(--accent-danger) !important; }
.cal-cell.holiday.today .cal-day-num { color: #000; }
.cal-cell.today:nth-child(7n) .cal-day-num,
.cal-cell.today:nth-child(7n+1) .cal-day-num { color: #000; }

/* ===== Detail Modal ===== */
.detail-overlay {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px); z-index: 500;
}
.detail-overlay.active { display: block; }
.detail-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%);
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; z-index: 501;
  min-width: 320px; max-width: 520px; max-height: 70%;
  display: none; box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.detail-modal.open { display: block; }
.detail-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.detail-title { font-size: 15px; font-weight: 700; color: var(--text-primary); }
.detail-close {
  background: none; border: none; color: var(--text-muted);
  font-size: 18px; cursor: pointer; padding: 4px 8px;
  border-radius: 4px; transition: all .2s;
}
.detail-close:hover { background: var(--bg-primary); color: var(--text-primary); }
.detail-body {
  font-size: 14px; line-height: 1.7; color: var(--text-secondary);
  white-space: pre-wrap; word-break: break-word;
  max-height: 50%; overflow-y: auto;
}
.detail-editor-wrap {
  display: flex; flex-direction: column; gap: 0;
}
.md-toolbar {
  display: flex; flex-wrap: wrap; gap: 2px; padding: 6px 0;
  border-bottom: 1px solid var(--border); align-items: center;
}
.md-btn {
  background: none; border: 1px solid transparent; color: var(--text-muted);
  cursor: pointer; font-size: 13px; padding: 4px 8px; border-radius: 4px;
  transition: all .15s; line-height: 1; min-width: 28px; text-align: center;
  font-family: inherit;
}
.md-btn:hover { background: var(--bg-card); border-color: var(--border); color: var(--text-primary); }
.md-btn:active { background: var(--accent); color: #fff; }
.md-sep { width: 1px; height: 16px; background: var(--border); margin: 0 2px; }
.md-tip { font-size: 10px; color: var(--text-muted); margin-left: auto; }
.detail-editor {
  width: 100%; min-height: 180px; max-height: 50%;
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: var(--radius-sm); color: var(--text-primary);
  padding: 14px; font-size: 14px; line-height: 1.7;
  font-family: inherit; resize: vertical; outline: none;
  transition: border-color .2s;
}
.detail-editor:focus { border-color: var(--accent); }
.detail-edit-toggle {
  background: none; border: 1px solid var(--border);
  color: var(--text-muted); font-size: 12px; cursor: pointer;
  padding: 2px 6px; border-radius: 4px; transition: all .2s;
}
.detail-edit-toggle:hover { border-color: var(--accent); color: var(--accent); background: rgba(96,165,250,.1); }
.detail-edit-toggle.active { border-color: var(--accent3); color: var(--accent3); background: rgba(52,211,153,.1); }
.detail-saving {
  font-size: 11px; color: var(--accent-warn);
  animation: pulse 1s ease infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .4; }
}
.detail-footer {
  margin-top: 14px; padding-top: 10px;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px;
}
.detail-edit-hint {
  font-size: 11px; color: var(--text-muted);
}
.detail-edit-hint kbd {
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: 3px; padding: 1px 5px; font-size: 10px;
  font-family: monospace; color: var(--text-secondary);
}
.detail-btn {
  border: 1px solid var(--border); border-radius: 6px;
  padding: 6px 14px; cursor: pointer; font-size: 12px;
  font-weight: 600; transition: all .2s;
}
.detail-btn.cancel {
  background: none; color: var(--text-muted);
}
.detail-btn.cancel:hover { background: var(--bg-primary); color: var(--text-primary); }
.detail-btn.save {
  background: linear-gradient(135deg, var(--accent3), #059669);
  border: none; color: #fff;
}
.detail-btn.save:hover { opacity: .85; }

/* ===== Day Panel ===== */
.day-panel-overlay {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px); z-index: 100;
}
.day-panel-overlay.active { display: block; }
.day-panel {
  position: fixed; right: 0; top: 0; bottom: 0; width: 400px; max-width: 92vw;
  background: var(--bg-card); border-left: 1px solid var(--border);
  box-shadow: -8px 0 40px rgba(0,0,0,.4); z-index: 101;
  transform: translateX(100%); transition: transform .3s cubic-bezier(.22,1,.36,1);
  display: flex; flex-direction: column;
}
.day-panel.open { transform: translateX(0); }
.panel-header {
  padding: 16px 22px 12px; border-bottom: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
}
.panel-day { font-size: 16px; font-weight: 700; }
.panel-weekday { font-size: 12px; color: var(--text-muted); }
.panel-close {
  background: none; border: none; color: var(--text-muted); cursor: pointer;
  font-size: 18px; padding: 4px 8px; border-radius: 6px; transition: all .2s;
}
.panel-close:hover { background: var(--bg-card-hover); color: var(--text-primary); }
.panel-body {
  padding: 14px 22px 20px; overflow-y: auto; flex: 1;
}
.panel-section-title {
  font-size: 12px; font-weight: 600; color: var(--text-muted);
  margin-bottom: 8px; letter-spacing: .5px;
}
.loc-group { display: flex; gap: 6px; margin-bottom: 16px; }
.loc-input {
  flex: 1; background: var(--bg-primary); border: 1px solid var(--border);
  color: var(--text-primary); padding: 8px 12px; border-radius: var(--radius-sm);
  font-size: 13px; outline: none; transition: border-color .2s;
}
.loc-input:focus { border-color: var(--accent); }
.loc-save-btn {
  background: linear-gradient(135deg, var(--accent2), var(--accent));
  border: none; color: #fff; padding: 8px 14px; border-radius: var(--radius-sm);
  cursor: pointer; font-weight: 600; font-size: 12px; transition: opacity .2s;
}
.loc-save-btn:hover { opacity: .85; }
.item-list { margin-bottom: 12px; }
.item-row {
  display: flex; align-items: flex-start; gap: 6px;
  padding: 6px 8px; margin-bottom: 3px;
  border-radius: 6px; background: var(--bg-primary);
  border: 1px solid var(--border); transition: all .2s;
}
.item-row:hover { border-color: var(--accent); }
.item-num { color: var(--accent); font-weight: 600; }

.item-text { flex: 1; font-size: 13px; line-height: 1.5; word-break: break-word; cursor: text; }
.item-text.editing { background: transparent; border: none; outline: none; color: var(--text-primary); font-size: 13px; font-family: inherit; width: 100%; resize: vertical; min-height: 24px; border-bottom: 1px solid var(--accent); }
.item-actions { display: flex; gap: 6px; opacity: 0.5; transition: opacity .12s; }
.item-row:hover .item-actions { opacity: 1; }
.item-btn {
  background: rgba(100,116,139,.08); border: 1px solid var(--border);
  cursor: pointer; font-size: 14px; padding: 5px 10px;
  border-radius: var(--radius-sm); transition: all .15s;
  line-height: 1; min-width: 36px; min-height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
}
.item-btn.edit { color: var(--accent); }
.item-btn.edit:hover { background: rgba(96,165,250,.15); border-color: var(--accent); }
.item-btn.del { color: var(--accent-danger); }
.item-btn.del:hover { background: rgba(248,113,113,.15); border-color: var(--accent-danger); }
.item-btn.save { color: var(--accent3); }
.item-btn.save:hover { background: rgba(52,211,153,.15); border-color: var(--accent3); }
.item-btn.cancel { color: var(--text-muted); }
.item-btn.cancel:hover { background: rgba(100,116,139,.12); }
.add-item-group { display: flex; gap: 6px; margin-top: 8px; }
.add-item-input {
  flex: 1; background: var(--bg-primary); border: 1px dashed var(--border);
  color: var(--text-muted); padding: 8px 12px; border-radius: var(--radius-sm);
  font-size: 13px; outline: none; transition: all .2s;
}
.add-item-input:focus { border-color: var(--accent); border-style: solid; color: var(--text-primary); }
.add-item-input::placeholder { color: var(--text-muted); }
.add-item-btn {
  background: linear-gradient(135deg, var(--accent3), #059669);
  border: none; color: #fff; padding: 8px 16px; border-radius: var(--radius-sm);
  cursor: pointer; font-weight: 600; font-size: 12px; transition: opacity .2s; white-space: nowrap;
}
.add-item-btn:hover { opacity: .85; }

/* ===== 移动端整体响应式 ===== */
/* 手机：≤768px */
@media (max-width: 768px) {
  .app { padding: 8px; }
  .header { padding: 8px 10px; }
  .header-title { font-size: 14px; }
  .nav { padding: 6px 10px; flex-wrap: wrap; gap: 4px; }
  .nav-month { font-size: 14px; min-width: 100px; }
  .nav-btn { font-size: 11px; padding: 4px 8px; }
  .cal-cell { min-height: 52px; padding: 3px; }
  .cal-day-num { font-size: 11px; width: 20px; height: 20px; line-height: 20px; }
  .cal-items { font-size: 8px; }
  .day-panel { width: 100vw; max-width: 100vw; }
  .panel-body { padding: 12px; }
  .panel-section-title { font-size: 11px; }
  .item-row { padding: 4px 6px; }
  .item-text { font-size: 12px; }
  .add-item-group { flex-wrap: wrap; gap: 4px; }
  .add-item-input { font-size: 12px; padding: 6px; min-width: 0; flex: 1 1 60%; }
  .add-item-btn { font-size: 11px; padding: 6px 10px; }
  .settings-panel,
  .ds-chart-modal {
    width: 94vw; left: 3vw; top: 2%;
    transform: none; max-height: 94%; padding: 14px;
  }
  .detail-modal {
    min-width: auto; width: 92vw; max-width: 92vw; padding: 14px;
  }
  .detail-header { flex-wrap: wrap; gap: 4px; }
  .detail-body { font-size: 13px; }
  .view-switcher { gap: 1px; }
  .view-btn { font-size: 11px; padding: 3px 8px; }
  .report-panel { width: 94vw; max-height: 85%; padding: 14px; }
}

/* 平板：769px-1024px */
@media (min-width: 769px) and (max-width: 1024px) {
  .app { padding: 14px; }
  .cal-cell { min-height: 80px; padding: 5px; }
  .cal-day-num { font-size: 13px; }
  .cal-items { font-size: 10px; }
  .day-panel { width: 360px; }
  .settings-panel { max-width: min(85vw, 580px); }
  .nav-month { font-size: 17px; }
}

/* 小屏桌面或窗口化：1025px-1280px */
@media (min-width: 1025px) and (max-width: 1280px) {
  .app { max-width: 1100px; }
  .day-panel { width: 380px; }
}

/* ===== Print ===== */
@media print {
  body { background: #fff !important; color: #000 !important; }
  body::before { display: none !important; }
  .header, .nav .action-btn, .nav .today-btn, .nav-btn:not(.nav-left):not(.nav-right) { display: none !important; }
  .cal-cell { background: #fff !important; border-color: #ddd !important; min-height: 80px !important; }
  .cal-cell:hover { transform: none !important; }
  .cal-cell.has-work { border-left: 3px solid #2563eb !important; }
  .cal-cell.has-location { border-bottom: 2px solid #7c3aed !important; }
  .cal-cell.today { border-color: #2563eb !important; box-shadow: none !important; }
  .cal-day-num, .cal-header-cell, .cal-location, .cal-items { color: #333 !important; }
  .cal-cell.today .cal-day-num { background: #2563eb !important; color: #fff !important; }
  .cal-items li:hover { background: none !important; }
  .day-panel, .day-panel-overlay { display: none !important; }
  .app { padding: 10px !important; max-width: 100% !important; }
  @page { margin: 10mm; }
}

/* ===== Scrollbar ===== */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ===== Responsive ===== */

@media (max-width: 480px) {
  .cal-cell { min-height: 58px; padding: 3px; }
  .cal-items li { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .cal-location { display: none; }
  .nav-group.gap-sm { gap: 4px; }
}


/* ===== View Switcher ===== */
.view-switcher {
  display: flex; gap: 2px;
  background: var(--bg-card);
  border-radius: var(--radius-sm);
  padding: 2px; margin: 0 8px;
}
.view-btn {
  background: none; border: none; color: var(--text-muted);
  padding: 4px 10px; border-radius: 6px; cursor: pointer;
  font-size: 12px; font-weight: 500; transition: all .2s;
}
.view-btn:hover { color: var(--text-primary); }
.view-btn.active { background: var(--accent); color: #000; font-weight: 600; }

/* ===== Week View ===== */
/* removed */
/* removed */

/* ===== Day View ===== */
.cal-grid.day-view { grid-template-columns: repeat(7, 1fr); }
.cal-grid.day-view .cal-cell:not(.day-view-current) { display: none !important; }
.day-view-header {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 12px 0; 
}
.day-nav-btn {
  background: var(--bg-card); border: 1px solid var(--border);
  color: var(--text-secondary); padding: 4px 12px; border-radius: var(--radius-sm);
  cursor: pointer; font-size: 16px;
}
.day-nav-btn:hover { background: var(--bg-card-hover); color: var(--text-primary); }



/* ===== Week View - Vertical ===== */
.cal-grid.week-view { display: flex !important; flex-direction: column; gap: 2px; padding: 3px 0; overflow-y: visible; max-height: none; flex: none; min-height: auto; }
.cal-grid.week-view ~ .cal-header { display: none !important; }
.cal-cell-week {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 8px 12px;
  cursor: pointer; transition: all .2s;
  flex-shrink: 0; min-height: auto;
}
.cal-cell-week:hover { border-color: var(--accent); background: var(--bg-card-hover); transform: translateX(2px); }
.cal-cell-week.today { border-color: var(--accent); box-shadow: 0 0 8px var(--glow-blue); }
.cal-cell-week + .cal-cell-week { margin-top: 1px; }
.cal-week-header { display: flex; align-items: center; gap: 8px; }
.cal-weekday { font-size: 11px; color: var(--text-muted); font-weight: 600; min-width: 28px; text-align: right; }
.cal-cell-week.today .cal-weekday { color: var(--accent); }
.cal-cell-week .cal-day-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  font-size: 12px; font-weight: 600; color: var(--text-primary);
}
.cal-cell-week.today .cal-day-num { background: var(--accent); color: #000; }
.cal-week-holiday { font-size: 10px; color: var(--accent-danger); font-weight: 600; margin: 1px 0 1px 36px; }
.cal-week-loc { font-size: 10px; color: var(--text-muted); margin-left: 36px; min-height: 16px; }
.cal-week-items { list-style: none; font-size: 11px; color: var(--text-secondary); margin: 2px 0 0 36px; padding: 0; }
.cal-week-items li { padding: 1px 0; }
.cal-week-more { color: var(--accent); font-size: 10px; }

/* ===== Day View ===== */

.cal-grid.day-view ~ .cal-header { display: none !important; }
/* ===== Date Picker ===== */
.picker-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 150;
  display: none; backdrop-filter: blur(4px);
}
.picker-overlay.active { display: block; }
.picker-modal {
  position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 380px; max-width: 90vw;
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; z-index: 151;
  display: none; box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.picker-modal.open { display: block; }
.picker-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.picker-title { font-size: 16px; font-weight: 700; color: var(--text-primary); }
.picker-close {
  background: none; border: none; color: var(--text-muted);
  font-size: 18px; cursor: pointer; padding: 4px 8px;
  border-radius: 4px; transition: all .2s;
}
.picker-close:hover { background: var(--bg-primary); color: var(--text-primary); }
.picker-body { display: flex; flex-direction: column; gap: 12px; }
.picker-row { display: flex; align-items: center; gap: 10px; }
.picker-label {
  font-size: 13px; font-weight: 600; color: var(--text-muted);
  min-width: 40px; text-align: right;
}
.picker-input {
  flex: 1; background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm); color: var(--text-primary);
  padding: 10px 14px; font-size: 14px; outline: none;
  transition: border-color .2s;
}
.picker-input:focus { border-color: var(--accent); }
.picker-input::-webkit-calendar-picker-indicator {
  filter: invert(.7); cursor: pointer;
}
.picker-go {
  width: 100%; margin-top: 4px;
  background: linear-gradient(135deg, var(--accent), #3b82f6);
  border: none; color: #fff; padding: 10px;
  border-radius: var(--radius-sm); cursor: pointer;
  font-size: 14px; font-weight: 600; transition: opacity .2s;
}
.picker-go:hover { opacity: .85; }

/* navMonth 可点击提示 */
.nav-month {
  cursor: pointer; user-select: none;
  transition: all .2s;
}
.nav-month:hover {
  color: var(--accent);
  text-shadow: 0 0 12px var(--glow-blue);
}

/* ===== Report Panel ===== */
.report-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 99;
  display: none; backdrop-filter: blur(4px);
}
.report-overlay.active { display: block; }

.report-panel {
  position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 520px; max-width: 92vw; max-height: 85%;
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; z-index: 100;
  display: none; overflow-y: auto;
}
.report-panel.open { display: block; }

.report-title { font-size: 20px; font-weight: 700; margin-bottom: 20px; color: var(--text-primary); }

.report-option {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 16px; margin-bottom: 12px;
  cursor: pointer; transition: all .2s;
}
.report-option:hover { border-color: var(--accent); background: var(--bg-card-hover); }
.report-option.selected { border-color: var(--accent); box-shadow: 0 0 12px var(--glow-blue); }
.report-option-title { font-size: 15px; font-weight: 600; color: var(--text-primary); margin-bottom: 4px; }
.report-option-desc { font-size: 12px; color: var(--text-muted); }

.report-preview {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 16px; margin: 12px 0;
  max-height: 240px; overflow-y: auto; font-size: 13px; line-height: 1.6;
  color: var(--text-secondary); white-space: pre-wrap;
}

.report-actions { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }

/* 主题配置面板 */
.theme-config-panel {
  position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 460px; max-width: 92vw; max-height: 88%;
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; z-index: 1000;
  display: none; overflow-y: auto;
}
.theme-config-panel.open { display: block; }
.tc-section { margin-bottom: 16px; }
.tc-label { font-size: 13px; font-weight: 600; color: var(--text-secondary); margin-bottom: 6px; }
.tc-btn {
  padding: 6px 14px; border: 1px solid var(--border); border-radius: 6px;
  background: var(--bg-card); color: var(--text-primary); cursor: pointer;
  font-size: 13px; transition: all .2s;
}
.tc-btn:hover { border-color: var(--accent); background: var(--bg-card-hover); }
.tc-btn-active { border-color: var(--accent) !important; background: var(--accent) !important; color: #000 !important; font-weight: 600; }
.tc-btn-primary { background: var(--accent); color: #000; font-weight: 600; border-color: var(--accent); }
.tc-btn-danger { border-color: var(--accent-danger); color: var(--accent-danger); }

/* 设置面板 */
.settings-panel,
.ds-chart-modal,
.detail-modal {
  position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: auto; min-width: 320px; max-width: min(92vw, 640px); max-height: 88%;
  background: var(--bg-primary); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; z-index: 1001;
  display: none; overflow-y: auto;
}
@media (max-width: 768px) {
  .settings-panel,
  .ds-chart-modal {
    min-width: 0; width: 92vw; left: 4vw; top: 3%;
    transform: none; max-height: 94%; padding: 16px;
  }
}
@media (max-width: 500px) {
  .settings-panel,
  .ds-chart-modal {
    min-width: 0; width: 96vw; left: 2vw; top: 2%;
    transform: none; max-height: 96%; padding: 12px;
  }
  .settings-panel .tc-section { margin-bottom: 10px; }
  .settings-panel input { font-size: 12px !important; padding: 6px !important; }
}
.settings-panel.open { display: block; }
.settings-panel input:focus { outline: none; border-color: var(--accent) !important; }
.tc-color-swatch {
  width: 32px; height: 32px; border-radius: 50%; cursor: pointer;
  border: 2px solid transparent; transition: all .2s;
}
.tc-color-swatch:hover { transform: scale(1.15); border-color: var(--text-muted); }
.tc-section input[type=range] { accent-color: var(--accent); }
.report-btn {
  background: var(--accent); color: #000; border: none;
  padding: 8px 16px; border-radius: var(--radius-sm); cursor: pointer;
  font-size: 13px; font-weight: 600; transition: all .2s;
}
.report-btn:hover { opacity: .85; }
.report-btn.alt { background: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border); }
.report-btn.alt:hover { background: var(--bg-card-hover); }

/* ===== Portrait auto week view ===== */
@media (orientation: portrait) and (max-width: 768px) {
  body { overflow: auto; height: auto; }
  body.show-month-on-mobile { overflow: auto !important; height: auto !important; }
  .app { height: auto; min-height: 100vh; }
  .cal-grid:not(.week-view):not(.day-view) { display: none; }
  .cal-grid.week-view,
  .cal-grid.day-view { display: flex !important; flex-direction: column; overflow: visible; flex: none; min-height: auto; }
  /* 竖屏也显示月视图按钮，点击可在日月周间切换 */
  .view-btn[data-view="month"] { display: inline-flex !important; }
  body.show-month-on-mobile .cal-grid:not(.week-view):not(.day-view),
  .cal-grid.month-view { display: grid !important; }
  body.show-month-on-mobile .cal-grid.week-view,
  body.show-month-on-mobile .cal-grid.day-view { display: none !important; }
  .day-panel { width: 100vw; max-width: 100vw; }
  .picker-modal { width: 92vw; padding: 16px; }
  .detail-modal { min-width: auto; width: 92vw; max-width: 92vw; padding: 16px; }
  .detail-editor { min-height: 120px; }
  .md-toolbar { gap: 1px; padding: 3px 0; }
  .md-btn { font-size: 12px; padding: 5px 8px; min-width: 24px; }
  .md-tip { display: none; }
  .nav { flex-wrap: wrap; gap: 6px; }
  .nav-month { font-size: 15px; min-width: auto; }
  .report-panel { width: 92vw; max-height: 80%; }
  .cal-cell-week { padding: 6px 8px; }
  .cal-week-header { gap: 4px; }
  .day-view-daynum { font-size: 36px; }
  .cal-cell-week .cal-day-num { width: 20px; height: 20px; font-size: 11px; }
  .cal-week-items, .cal-week-loc { margin-left: 24px; font-size: 10px; }
  .picker-row { flex-direction: column; align-items: stretch; gap: 4px; }
  .picker-label { text-align: left; min-width: auto; }
  .detail-footer { flex-direction: column; align-items: stretch; }
  .detail-btn { font-size: 13px; padding: 8px; }
}
@media (orientation: portrait) and (min-width: 769px) {
  /* tablet portrait: show month but smaller */
}

/* 竖屏月视图 - 不填充满，保持比例，页面可滚动 */
@media (orientation: portrait) {
  .cal-grid { flex: none; min-height: auto; height: auto; max-height: none; overflow: visible; }
  .cal-grid.month-view { min-height: 300px; }
  .app.expanded .cal-grid { flex: none; height: auto; }
  .cal-header { flex-shrink: 0; }
}

/* 未登录状态隐藏敏感信息 */
body:not(.logged-in) #aiBadgeLabel,
body:not(.logged-in) #aiBalance,
body:not(.logged-in) #dsBadge,
body:not(.logged-in) #settingsBtn,
body:not(.logged-in) .ds-chart-overlay,
body:not(.logged-in) .ds-chart-modal { display: none !important; }
body:not(.logged-in) .day-panel { display: none !important; }
body:not(.logged-in) .side-panel { display: none !important; }


/* 手机月视图隐藏展开按钮 */
body.show-month-on-mobile .month-expand-bar { display: none !important; }

/* 竖屏月视图 - 让页面 body 可滚动 */
@media (orientation: portrait) {
  body.show-month-on-mobile { overflow: auto !important; height: auto !important; }
  body.show-month-on-mobile .app { height: auto !important; min-height: 100vh !important; }
  body.show-month-on-mobile .cal-grid.month-view { flex: none; max-height: none; overflow: visible; min-height: auto; }
  /* 手机月视图：格子固定高度，图标+N简洁展示 */
  body.show-month-on-mobile .cal-cell { min-height: 52px; max-height: 52px; overflow: hidden; padding: 3px 4px; }
  body.show-month-on-mobile .cal-cell .cal-day { margin-bottom: 0; }
  body.show-month-on-mobile .cal-cell .cal-day-num { font-size: 11px; width: 18px; height: 18px; line-height: 18px; }
  body.show-month-on-mobile .cal-cell .cal-items { margin: 0; padding: 0; list-style: none; }
  /* 手机月视图默认只显示 toggle 行，隐藏其他所有条目 */
  body.show-month-on-mobile .cal-cell .cal-items li { display: none; }
  body.show-month-on-mobile .cal-cell .cal-items li.cal-item-toggle { display: inline-flex; align-items: center; gap: 2px; font-size: 9px; }
  body.show-month-on-mobile .cal-cell .cal-item-toggle b { font-size: 8px; padding: 0 3px; border-radius: 2px; }
  body.show-month-on-mobile .cal-cell .cal-location { display: none; }
  body.show-month-on-mobile .cal-cell .holiday-label { display: none; }
  /* 手机月视图展开后显示全部条目 */
  body.show-month-on-mobile .cal-cell.show-all-items { max-height: none; overflow: visible; min-height: auto; height: auto; }
  body.show-month-on-mobile .cal-cell.show-all-items .cal-items li { display: list-item; font-size: 9px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border: none; }
  body.show-month-on-mobile .cal-cell.show-all-items .cal-location { display: block; }
  body.show-month-on-mobile .cal-header { display: grid !important; }
}

/* 展开时允许滚动 */
body.expanded { overflow: auto !important; height: auto !important; }
body.expanded .app { height: auto !important; min-height: 100vh; }
body.expanded .cal-grid { flex: none; }
/* ===== Equal Height & Expand ===== */
.cal-cell { min-height: 80px; display: flex; flex-direction: column; overflow: hidden; }
.cal-item-extra { display: none; }
.cal-cell.show-all-items .cal-item-extra { display: list-item; }
.cal-cell.show-all-items .cal-item-toggle b { display: none; }
.month-expand-bar { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 3px 0; }
.month-expand-btn { background: var(--bg-card); border: 1px solid var(--border); color: var(--text-secondary); padding: 2px 10px; border-radius: var(--radius-sm); cursor: pointer; font-size: 10px; font-weight: 500; }
.month-expand-btn:hover { border-color: var(--accent); color: var(--text-primary); }

/* ===== Day View ===== */
.cal-grid.day-view { display: flex !important; flex-direction: column; padding: 0; min-height: 400px; max-height: calc(100vh - 100px); overflow-y: auto; }
.cal-grid.day-view ~ .cal-header { display: none !important; }
.day-view-main { padding: 20px; cursor: pointer; flex: 1; }
.day-view-date { display: flex; align-items: baseline; gap: 10px; margin-bottom: 16px; }
.day-view-daynum { font-size: 48px; font-weight: 800; color: var(--text-primary); line-height: 1; }
.day-view-meta { font-size: 14px; color: var(--text-muted); }
.day-view-holiday { font-size: 12px; color: var(--accent-danger); font-weight: 600; }
.day-view-loc { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; min-height: 20px; }
.day-view-items { list-style: none; font-size: 13px; color: var(--text-secondary); margin: 0; padding: 0; }
.day-view-items li { padding: 6px 0 6px 2em; border-bottom: 1px solid var(--border); text-indent: -2em; }

.day-view-empty { font-size: 13px; color: var(--text-muted); padding: 24px 0; }

/* === Day Timeline === */
.day-timeline { margin-top: 12px; }
.timeline-row { display: flex; min-height: 36px; position: relative; }
.timeline-row.has-items { min-height: auto; }
.timeline-time { width: 44px; font-size: 10px; color: var(--text-muted); text-align: right; padding-right: 6px; padding-top: 2px; flex-shrink: 0; }
.timeline-line { width: 2px; background: var(--border); margin: 0 8px; position: relative; flex-shrink: 0; }
.timeline-row:first-child .timeline-line::before { content: ''; position: absolute; top: 0; left: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.timeline-content { flex: 1; padding: 0 4px; }
.timeline-empty { min-height: 28px; cursor: pointer; }
.timeline-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; margin-bottom: 2px; font-size: 12px; color: var(--text-primary); cursor: pointer; }
.timeline-item:hover { border-color: var(--accent); }
.chat-timeline .timeline-item { cursor: default; }
.chat-timeline .timeline-item:hover { border-color: var(--border); }
.chat-timeline .timeline-empty { cursor: default; }
.chat-timeline .sub-item { padding-left: 16px; font-size: 12px; margin-bottom: 1px; }
.chat-timeline .sub-item::before { content: "·"; color: var(--text-muted); margin-right: 4px; }

/* === Holiday for Week & Day === */
.cal-cell-week.holiday .cal-day-num { color: var(--accent-danger) !important; }
.cal-cell-week.holiday .cal-weekday { color: var(--accent-danger) !important; }
.day-view-main.holiday .day-view-daynum { color: var(--accent-danger) !important; }
.day-view-main.holiday .day-view-meta { color: var(--accent-danger) !important; }

/* === Holiday for Week & Day === */
.cal-cell-week.holiday .cal-day-num { color: var(--accent-danger) !important; }
.cal-cell-week.holiday .cal-weekday { color: var(--accent-danger) !important; }
.day-view-main.holiday .day-view-daynum { color: var(--accent-danger) !important; }
.day-view-main.holiday .day-view-meta { color: var(--accent-danger) !important; }

/* Toast Notification */
.toast-container {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
  z-index: 99999; display: flex; flex-direction: column; align-items: center;
  gap: 8px; pointer-events: none;
}
.toast {
  background: var(--card); border: 1px solid var(--border);
  color: var(--text-primary); padding: 10px 20px; border-radius: 10px;
  font-size: 14px; box-shadow: 0 4px 20px rgba(0,0,0,.3);
  display: flex; align-items: center; gap: 8px;
  animation: toastIn .3s ease, toastOut .3s ease 2s forwards;
  pointer-events: auto; max-width: 90vw;
}
.toast.success { border-color: var(--accent3); }
.toast.error { border-color: var(--accent-danger); }
@keyframes toastIn {
  from { opacity: 0; transform: translateY(-20px) scale(.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toastOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(-20px) scale(.9); }
}d>

/* 安卓 WebView 状态栏透明适配（padding 由 JS 动态计算） */
.android-webview #app { padding-top: 0; }

/* ===== AI 智能录入多条目结果 ===== */
@keyframes aiProgress {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(200%); }
  100% { transform: translateX(-100%); }
}
.ai-result-item {
  padding: 12px;
  margin-bottom: 8px;
  border-radius: 8px;
  background: #1e293b;
  border: 1px solid #334155;
}
.ai-result-item.company { border-left: 3px solid #3b82f6; }
.ai-result-item.personal { border-left: 3px solid #10b981; }
.ai-result-header {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 600; margin-bottom: 6px;
}
.ai-result-summary {
  font-size: 14px; font-weight: 500; color: #f1f5f9;
  margin-bottom: 4px;
}
.ai-result-detail {
  font-size: 12px; color: #94a3b8;
}
.ai-results-actions {
  display: flex; gap: 8px; margin-top: 16px;
}
