/* 財經行事曆（深色，版面參考月曆式財經行事曆） */
.sp-cal { --bg: #131722; --card: #1c2030; --line: #2f354b; --grid: #262c40; --text: #e6e8ee; --mute: #848e9c; --acc: #4e8cff;
	--econ3: #ff9f43; --econ2: #f5c542; --econ1: #8a93a6; --earn: #4e8cff; --div: #16b36b;
	color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans TC", sans-serif; margin: 0 0 24px;
	background: var(--bg); border-radius: 16px; padding: 20px; }
.sp-cal *, .sp-cal *::before, .sp-cal *::after { box-sizing: border-box; }
.sp-cal button { font: inherit; }
.sp-cal-loading { color: var(--mute); padding: 40px 0; text-align: center; }
.sp-cal-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.sp-cal-title { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sp-cal-title h2 { margin: 0; font-size: 24px; color: #fff; font-weight: 700; min-width: 150px; }
.sp-cal .nav { display: inline-flex; gap: 6px; }
.sp-cal .nav button, .sp-cal-views button { background: var(--card); color: #dfe3ec; border: 1px solid var(--line); border-radius: 8px; padding: 6px 13px; cursor: pointer; line-height: 1.2; }
.sp-cal .nav button:hover, .sp-cal-views button:hover { border-color: var(--acc); color: #fff; }
.sp-cal-views { display: inline-flex; }
.sp-cal-views button { border-radius: 0; margin-left: -1px; }
.sp-cal-views button:first-child { border-radius: 8px 0 0 8px; margin-left: 0; }
.sp-cal-views button:last-child { border-radius: 0 8px 8px 0; }
.sp-cal-views button.on { background: var(--acc); border-color: var(--acc); color: #fff; position: relative; }
.sp-cal-kinds { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.sp-cal-kinds button { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--mute); padding: 9px 16px; margin-bottom: -1px; cursor: pointer; font-size: 15px; border-radius: 0; }
.sp-cal-kinds button:hover { color: #fff; background: none; }
.sp-cal-kinds button.on { color: #fff; border-bottom-color: var(--acc); }
.sp-cal-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.sp-cal-filters select { width: auto !important; max-width: 100%; }
.sp-cal-filters select, .sp-cal-filters input[type=search] { background: var(--card); color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; font-size: 14px; height: 36px; }
.sp-cal-filters input[type=search] { flex: 1 1 200px; min-width: 150px; }
.sp-cal-filters select:disabled { opacity: .45; }
.sp-cal-filters .mine { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #dfe3ec; cursor: pointer; white-space: nowrap; }
.sp-cal-filters .sub-btn { margin-left: auto; background: #1f7a4d; color: #fff; border: 0; border-radius: 8px; padding: 8px 14px; cursor: pointer; font-size: 14px; }
.sp-cal-filters .sub-btn:hover { background: #26915c; }
.sp-cal-sub { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 14px; }
.sp-cal-sub .how { margin: 0 0 10px; color: #b7bdc8; font-size: 13px; line-height: 1.7; }
.sp-cal-sub .feed { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--grid); }
.sp-cal-sub .feed b { color: #fff; font-size: 15px; }
.sp-cal-sub .feed small { display: block; color: var(--mute); font-size: 12px; margin-top: 2px; }
.sp-cal-sub .act { display: flex; gap: 6px; flex-wrap: wrap; }
.sp-cal-sub .act a, .sp-cal-sub .act button { background: #2a3150; color: #dfe3ec; border: 0; border-radius: 6px; padding: 6px 12px; font-size: 13px; cursor: pointer; text-decoration: none; }
.sp-cal-sub .act a.g { background: var(--acc); color: #fff; }
.sp-cal-body { min-height: 200px; transition: opacity .15s; }
.sp-cal-body.busy { opacity: .45; }
.sp-cal-hint { background: #2a2433; border: 1px solid #4a3a5a; color: #e3d6f5; border-radius: 8px; padding: 8px 12px; font-size: 13px; }

/* 事件小卡 */
.sp-cal .ev { display: flex; align-items: center; gap: 5px; width: 100%; text-align: left; background: #232a3d; border: 1px solid var(--line); border-left: 3px solid var(--econ1);
	border-radius: 6px; padding: 4px 6px; margin: 0 0 4px; color: var(--text); cursor: pointer; font-size: 12.5px; line-height: 1.3; min-width: 0; }
.sp-cal .ev:hover { border-color: var(--acc); background: #28304a; }
.sp-cal .ev.k-econ.imp3 { border-left-color: var(--econ3); }
.sp-cal .ev.k-econ.imp3 .lb { color: #ffc58f; }
.sp-cal .ev.k-econ.imp2 { border-left-color: var(--econ2); }
.sp-cal .ev.k-earn { border-left-color: var(--earn); }
.sp-cal .ev.k-div { border-left-color: var(--div); }
.sp-cal .ev.mine { box-shadow: inset 0 0 0 1px rgba(245, 197, 66, .6); }
.sp-cal .ev .lb { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sp-cal .ev .tg { flex: 0 0 auto; color: var(--mute); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.sp-cal .ev .fp { flex-basis: 100%; color: var(--mute); font-size: 11px; }
.sp-cal .rg { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 18px; padding: 0 4px; border-radius: 4px;
	font-size: 11px; font-weight: 700; background: #394160; color: #fff; }
.sp-cal .rg-US { background: #2f5fb3; } .sp-cal .rg-TW { background: #b8423a; } .sp-cal .rg-JP { background: #a8386e; } .sp-cal .rg-KR { background: #1f8d99; }
.sp-cal .rg-EU { background: #3b4fa8; } .sp-cal .rg-CN { background: #c0392b; } .sp-cal .rg-GB { background: #5a4ca8; }

/* 月檢視 */
.sp-cal-grid { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--card); }
.sp-cal-grid .wh, .sp-cal-grid .wk { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.sp-cal-grid .wh div { text-align: center; padding: 9px 0; color: var(--mute); font-size: 13px; background: #181c2a; border-bottom: 1px solid var(--line); }
.sp-cal-grid .day { min-height: 128px; padding: 6px 6px 4px; border-right: 1px solid var(--grid); border-bottom: 1px solid var(--grid); min-width: 0; }
.sp-cal-grid .day:nth-child(7n) { border-right: 0; }
.sp-cal-grid .wk:last-child .day { border-bottom: 0; }
.sp-cal-grid .day.out { background: #171b27; }
.sp-cal-grid .day.out .dn { color: #555e73; }
.sp-cal-grid .day.we { background: #1a1e2c; }
.sp-cal-grid .day.today { background: rgba(78, 140, 255, .09); }
.sp-cal-grid .day.today .dn { background: var(--acc); color: #fff; border-radius: 50%; }
.sp-cal .dh { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.sp-cal .dn { background: none; border: 0; color: #fff; font-weight: 700; font-size: 14px; cursor: pointer; padding: 0; min-width: 24px; height: 24px; line-height: 24px; text-align: center; }
.sp-cal .cnt { color: var(--mute); font-size: 11px; }
.sp-cal .more { background: none; border: 0; color: #8db4ff; font-size: 12px; cursor: pointer; padding: 2px 4px; }
.sp-cal .more:hover { text-decoration: underline; }

/* 週檢視 */
.sp-cal-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--card); }
.sp-cal-week .col { border-right: 1px solid var(--grid); padding: 6px; min-height: 360px; min-width: 0; }
.sp-cal-week .col:last-child { border-right: 0; }
.sp-cal-week .col.today { background: rgba(78, 140, 255, .08); }
.sp-cal-week .ch { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid var(--grid); }
.sp-cal-week .ch .dn { width: auto; height: auto; line-height: 1.3; text-align: left; color: var(--mute); font-weight: 400; font-size: 12px; }
.sp-cal-week .ch .dn b { display: block; color: #fff; font-size: 15px; }
.sp-cal .none { color: #555e73; text-align: center; margin: 12px 0; }

/* 清單 */
.sp-cal-list .lday { background: var(--card); border: 1px solid var(--line); border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.sp-cal-list .lday.today { border-color: var(--acc); }
.sp-cal-list .lh { display: flex; justify-content: space-between; align-items: center; padding: 9px 14px; background: #181c2a; }
.sp-cal-list .lh b { color: #fff; }
.sp-cal .scroll { overflow-x: auto; }
.sp-cal table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 0; }
.sp-cal td, .sp-cal th { border: 0; border-bottom: 1px solid var(--grid); padding: 7px 10px; background: transparent; vertical-align: middle; }
.sp-cal tr:last-child td { border-bottom: 0; }
.sp-cal td.tm { width: 64px; color: var(--mute); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sp-cal td.ti { min-width: 200px; }
.sp-cal td.ti .lk { background: none; border: 0; padding: 0; color: #fff; cursor: pointer; text-align: left; font-size: 14px; }
.sp-cal td.ti .lk:hover { color: #8db4ff; text-decoration: underline; }
.sp-cal tr.k-econ.imp3 td.ti .lk { color: #ffc58f; }
.sp-cal td.ti .kd { margin-left: 8px; font-size: 11px; color: var(--mute); }
.sp-cal tr.k-earn td.ti .kd { color: #8db4ff; }
.sp-cal tr.k-div td.ti .kd { color: #4fd192; }
.sp-cal td.inf { color: #b7bdc8; font-size: 12.5px; white-space: nowrap; }
.sp-cal td.st { color: var(--econ2); font-size: 12px; white-space: nowrap; width: 50px; }
.sp-cal td.gg { width: 80px; text-align: right; }
.sp-cal td.gg a { color: #8db4ff; font-size: 12px; text-decoration: none; white-space: nowrap; }
.sp-cal-note { color: var(--mute); font-size: 12px; line-height: 1.7; margin: 12px 0 0; }
.sp-cal-note .lg { display: block; margin-top: 4px; }
.sp-cal-note .lg i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin: 0 4px -1px 10px; background: var(--econ1); }
.sp-cal-note .lg i:first-child { margin-left: 0; }
.sp-cal-note .lg i.k-econ.imp3 { background: var(--econ3); } .sp-cal-note .lg i.k-econ.imp2 { background: var(--econ2); }
.sp-cal-note .lg i.k-earn { background: var(--earn); } .sp-cal-note .lg i.k-div { background: var(--div); }

/* 視窗 */
.sp-cal-modal { position: fixed; inset: 0; background: rgba(0, 0, 0, .6); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sp-cal-modal[hidden] { display: none; }
.sp-cal-modal .box { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: 14px; width: 100%; max-width: 640px; max-height: 86vh; overflow: auto; padding: 18px 20px; }
.sp-cal-modal .x { position: absolute; top: 8px; right: 10px; background: none; border: 0; color: var(--mute); font-size: 26px; cursor: pointer; line-height: 1; }
.sp-cal-modal .md-h { display: flex; align-items: center; gap: 8px; margin: 0 26px 12px 0; }
.sp-cal-modal h3 { margin: 0; font-size: 18px; color: #fff; line-height: 1.4; }
.sp-cal-modal h3 a { color: #fff; }
.sp-cal-modal h3 small { color: var(--mute); font-size: 13px; font-weight: 400; }
.sp-cal-modal .md-t th { width: 96px; color: var(--mute); font-weight: 400; text-align: left; white-space: nowrap; }
.sp-cal-modal .md-t td { color: #e6e8ee; }
.sp-cal-modal .stars { color: var(--econ2); } .sp-cal-modal .stars i { color: #3a4157; font-style: normal; }
.sp-cal-modal .md-a { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.sp-cal-modal .md-a a { background: #2a3150; color: #fff; border-radius: 8px; padding: 8px 14px; text-decoration: none; font-size: 14px; }
.sp-cal-modal .md-a a.g { background: var(--acc); }
body.sp-cal-lock { overflow: hidden; }

@media (max-width: 900px) {
	.sp-cal-grid .day { min-height: 96px; padding: 4px 3px; }
	.sp-cal .ev { font-size: 11.5px; padding: 3px 4px; gap: 3px; }
	.sp-cal .ev .tg { display: none; }
	.sp-cal-week { grid-template-columns: repeat(7, minmax(120px, 1fr)); overflow-x: auto; }
	.sp-cal-filters .sub-btn { margin-left: 0; }
}
@media (max-width: 600px) {
	.sp-cal { padding: 12px 10px; border-radius: 12px; }
	.sp-cal-title h2 { font-size: 20px; min-width: 0; }
	.sp-cal-kinds button { padding: 8px 10px; font-size: 14px; }
	.sp-cal-grid .day { min-height: 70px; }
	.sp-cal-grid .wh div { font-size: 11px; }
	.sp-cal-grid .ev .lb { display: none; }
	.sp-cal-grid .ev { justify-content: center; padding: 2px; }
	.sp-cal .cnt { display: none; }
	.sp-cal td.inf { white-space: normal; min-width: 120px; }
	.sp-cal-modal .box { padding: 14px; }
}

/* 週檢視：小卡分三行（地區＋時間／標題／預測前值） */
.sp-cal-week .ev { flex-wrap: wrap; row-gap: 2px; }
.sp-cal-week .ev .tg { order: 2; margin-left: auto; }
.sp-cal-week .ev .lb { order: 3; flex-basis: 100%; white-space: normal; overflow: visible; }
.sp-cal-week .ev .fp { order: 4; }
/* 主選單多了「行事曆」，桌機版縮小間距避免換行 */
@media (min-width: 922px) { #ast-hf-menu-1 > li > .menu-link { padding-left: .35em; padding-right: .35em; } }
