/* =========================================================
   schedule.css｜時程規範頁（schedule.html）
   共用 digi05.css（版型）＋ home.css（評分元件）＋ shell.css（外框）
   ========================================================= */
.sc-intro { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: 36px; align-items: center; padding: 56px 0 8px; }
.sc-intro .d5-mono { color: var(--d-brand-strong); margin: 0; }
.sc-intro h2 { font: 900 clamp(28px, 3.6vw, 42px)/1.2 var(--d-font-display); margin: 12px 0 0; }
.sc-intro p.lead { margin: 14px 0 0; font-size: 16px; }
.now-card { background: #141311; color: #F4F1EB; border-radius: 20px; padding: 20px 22px; position: relative; overflow: hidden; }
.now-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 100% 0%, rgba(232,89,12,.35), transparent 50%), radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.2px) 0 0 / 20px 20px; pointer-events: none; }
.now-card > * { position: relative; }
.now-card .lbl { font: 800 11px var(--d-font-mono); letter-spacing: .14em; color: #F2B28F; display: flex; align-items: center; gap: 8px; }
.now-card .lbl i { width: 8px; height: 8px; border-radius: 50%; background: #E8590C; box-shadow: 0 0 0 4px rgba(232,89,12,.25); }
.now-card .big { display: flex; align-items: baseline; gap: 12px; margin-top: 8px; }
.now-card .big b { font: 900 52px/1 var(--d-font-display); color: #fff; }
.now-card .big span { font: 700 14px var(--d-font-mono); color: #CFCAC1; }
.now-card h3 { font: 900 17px/1.45 var(--d-font-display); color: #fff; margin: 8px 0 0; }
.now-card .go { display: inline-flex; gap: 6px; margin-top: 12px; font-size: 13.5px; font-weight: 800; color: #141311; background: #fff; border-radius: 10px; padding: 7px 12px; text-decoration: none; }
.now-card .go:hover { color: #141311; transform: translateY(-1px); }
.now-card .jump { margin-left: 8px; font-size: 13px; font-weight: 700; color: #F4F1EB; background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; padding: 6px 12px; cursor: pointer; }

/* ---------- 工具列 ---------- */
.sc-toolbar { position: sticky; top: var(--hdr, 68px); z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; margin-top: 30px; background: rgba(250,247,242,.94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--d-line); }
.sc-toolbar .chip-filter { margin: 0; }
.sc-legend { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--d-ink-3); align-items: center; }

/* ---------- 階段標題 ---------- */
.sc-phase { display: flex; align-items: baseline; gap: 12px; margin: 34px 0 12px; }
.sc-phase .p { font: 800 12px var(--d-font-mono); letter-spacing: .14em; color: #fff; background: var(--pc); border-radius: 99px; padding: 5px 11px; }
.sc-phase b { font: 900 20px var(--d-font-display); color: var(--d-ink); }
.sc-phase span { font: 700 12.5px var(--d-font-mono); color: var(--d-ink-3); }

/* ---------- 週次卡 ---------- */
.wk-card { display: grid; grid-template-columns: 96px 1fr 220px; gap: 18px; background: #fff; border: 1px solid var(--d-line); border-radius: 16px; padding: 16px 18px; margin-bottom: 10px; scroll-margin-top: calc(var(--hdr, 68px) + 80px); transition: box-shadow .25s; position: relative; overflow: hidden; }
.wk-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--c, transparent); }
.wk-card.is-hidden { display: none; }
.wk-card.is-past { opacity: .6; }
.wk-card.is-past:hover { opacity: 1; }
.wk-card.is-now { border-color: #F3B08A; box-shadow: 0 0 0 3px rgba(232,89,12,.14), 0 20px 40px -30px rgba(232,89,12,.6); opacity: 1; }
.wk-card.is-off { background: #FAFAF8; }
.wk-card .wn { display: flex; flex-direction: column; }
.wk-card .wn b { font: 900 30px/1 var(--d-font-display); color: var(--d-ink); }
.wk-card .wn b small { font: 800 12px var(--d-font-mono); color: var(--d-ink-3); margin-right: 2px; }
.wk-card .wn span { font: 700 13px var(--d-font-mono); color: var(--d-ink-2); margin-top: 6px; }
.wk-card .wn .now { display: inline-block; align-self: flex-start; margin-top: 8px; font-size: 11px; font-weight: 800; color: #fff; background: #E8590C; border-radius: 99px; padding: 2px 9px; }
.wk-card .ut { display: inline-block; font: 800 11px var(--d-font-mono); color: #fff; background: var(--c, var(--d-ink)); border-radius: 6px; padding: 2px 7px; margin-bottom: 6px; }
.wk-card h3 { font: 900 17px/1.45 var(--d-font-display); margin: 0; color: var(--d-ink); }
.wk-card dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 10px 0 0; font-size: 14px; }
.wk-card dt { font-weight: 800; color: var(--d-ink); white-space: nowrap; }
.wk-card dd { margin: 0; color: var(--d-ink-2); line-height: 1.7; }
.wk-card .lk { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.wk-card .lk a { font-size: 12.5px; font-weight: 800; color: var(--c, var(--d-ink)); border: 1px solid currentColor; border-radius: 9px; padding: 4px 10px; text-decoration: none; }
.wk-card .lk a:hover { background: var(--c, var(--d-ink)); color: #fff; border-color: var(--c, var(--d-ink)); }
.wk-card .lk span { font-size: 12.5px; font-weight: 700; color: var(--d-ink-3); border: 1px dashed var(--d-line); border-radius: 9px; padding: 4px 10px; }
.wk-card .ev { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.ev-chip { display: flex; flex-direction: column; font-size: 12.5px; font-weight: 800; border-radius: 10px; padding: 6px 10px; line-height: 1.4; width: 100%; }
.ev-chip small { font: 700 11px var(--d-font-mono); opacity: .8; }
.ev-chip.review { background: #FFF0E6; color: #C2410C; }
.ev-chip.exam { background: #1F1E1B; color: #fff; }
.ev-chip.mentor { background: #E3EFEA; color: #2F5D50; }
.ev-chip.off { background: #F1F1F1; color: #8A8A8A; }
.ev-chip.unit { background: #F3EFE8; color: var(--d-ink-2); }

/* ---------- 重要日期 ---------- */
.key-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.key-card { background: #fff; border: 1px solid var(--d-line); border-radius: 16px; padding: 14px 16px; }
.key-card h4 { display: flex; align-items: center; gap: 8px; font: 900 15px var(--d-font-display); margin: 0 0 8px; }
.key-card h4 i { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 14px; color: #fff; background: var(--kc); }
.key-card ul { list-style: none; margin: 0; padding: 0; }
.key-card li { display: flex; gap: 8px; font-size: 13.5px; color: var(--d-ink-2); padding: 4px 0; border-top: 1px dashed var(--d-line); }
.key-card li:first-child { border-top: 0; }
.key-card li b { font: 700 12.5px var(--d-font-mono); color: var(--d-ink); white-space: nowrap; min-width: 92px; }

@media (max-width: 991px) {
	.sc-intro { grid-template-columns: 1fr; }
	.wk-card { grid-template-columns: 80px 1fr; }
	.wk-card .ev { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
	.ev-chip { width: auto; }
	.key-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.wk-card { grid-template-columns: 1fr; gap: 10px; padding: 14px 14px 14px 18px; }
	.wk-card .wn { flex-direction: row; align-items: baseline; gap: 10px; flex-wrap: wrap; }
	.wk-card .wn span, .wk-card .wn .now { margin-top: 0; }
	.wk-card .ev { grid-column: 1; }
	.wk-card dl { grid-template-columns: 1fr; gap: 0; }
	.wk-card dd { margin-bottom: 6px; }
	.key-grid { grid-template-columns: 1fr; }
	.sc-toolbar { position: static; }
}
