/* 沿用官網 tokens；匿名月份投票與結果維持原本配色。 */
.home-wish-intro__title {font-size:clamp(1.75rem,3vw,2.7rem);font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--text);margin:0 0 16px}
.home-wish-intro .hero__cta {margin-top:22px}
.home-wish-months {display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:16px}
.home-wish-months a {display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:600;color:var(--coral-ink);text-decoration:underline;text-underline-offset:5px}
.course-wish {scroll-margin-top:100px;max-width:960px;margin:auto;padding:40px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card)}
.course-wish__head {max-width:760px;margin-bottom:28px}
.course-wish__icon {display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--r-sm);background:var(--coral-dim);color:var(--coral-ink);margin-bottom:16px}
.course-wish__icon .course-icon {width:32px;height:32px}
.course-wish__head .section__title {line-height:1.35;margin-bottom:12px;text-wrap:balance}
.course-wish__head>p {font-size:19px;color:var(--muted);margin:0;line-height:1.7}
.course-wish__form fieldset {border:0;padding:0;min-width:0;margin:0}
.course-wish__form legend {font-size:20px;font-weight:700;color:var(--text);margin:0 0 16px;padding:0}
.course-wish__form legend>span {font-size:15px;font-weight:400;color:var(--muted);margin-left:6px}
.course-wish__choices {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.course-wish__month {position:relative;cursor:pointer;min-width:0}
.course-wish__month input {position:absolute;opacity:0;width:1px;height:1px;margin:0}
.course-wish__month-body,.course-wish__custom-toggle {display:flex;flex-direction:column;gap:8px;min-height:172px;width:100%;padding:20px;text-align:left;border:2px solid var(--line);border-radius:var(--r-card);background:var(--bg);color:var(--text);font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.course-wish__year {font-size:17px;color:var(--muted);font-weight:600}
.course-wish__month-body>strong {font-family:var(--font-mono);font-size:40px;line-height:1.2;letter-spacing:-.01em}
.course-wish__month-body>strong>span {font-family:var(--font-body);font-size:20px;font-weight:600}
.course-wish__custom-toggle>strong {font-size:26px;line-height:1.85}
.course-wish__choice-bottom {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;font-size:15px;color:var(--muted);line-height:1.5}
.course-wish__tick {display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;color:transparent;background:var(--panel)}
.course-wish__tick .course-icon {width:18px;height:18px}
.course-wish__month input:checked+.course-wish__month-body {border-color:var(--coral-ink);background:var(--coral-dim)}
.course-wish__month input:checked+.course-wish__month-body .course-wish__tick {background:var(--coral);border-color:var(--coral);color:var(--on-accent)}
.course-wish__custom-toggle[aria-expanded="true"],.course-wish__custom-toggle[data-has-months] {border-color:var(--coral-ink);background:var(--coral-dim)}
.course-wish__month input:focus-visible+.course-wish__month-body,.course-wish__form :is(button,a,input,select):focus-visible,.home-wish-months a:focus-visible {outline:3px solid var(--coral-ink);outline-offset:4px}
.course-wish__month:hover .course-wish__month-body,.course-wish__custom-toggle:hover {border-color:var(--coral-ink)}
.course-wish__month:active .course-wish__month-body,.course-wish__form button:active {transform:scale(.98)}
.course-wish__custom {margin-top:18px;padding:20px;background:var(--bg-soft);border-radius:var(--r-sm)}
.course-wish__custom>label {display:block;font-size:17px;font-weight:600;margin-bottom:10px;color:var(--text)}
.course-wish__month-add {display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.course-wish__month-add input {flex:1;min-width:170px}
.course-wish__chips {display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.course-wish__chip {display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--coral-ink);color:var(--coral-ink);background:var(--coral-dim);font:600 16px var(--font-body);cursor:pointer}
.course-wish__chip>span {font-size:22px;line-height:1}
.course-wish__selection {color:var(--coral-ink);font-size:16px;margin:16px 0 0;line-height:1.7}
.course-wish__form input:not([type="checkbox"]),.course-wish__form select {display:block;box-sizing:border-box;min-width:0;width:100%;min-height:52px;margin-top:8px;padding:12px 14px;border:1px solid rgba(var(--ink-rgb),.32);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font:400 17px var(--font-body);line-height:1.4}
.course-wish__form input::placeholder {color:var(--muted);opacity:1}
.course-wish__next a {color:var(--coral-ink);text-decoration:underline;text-underline-offset:4px}
.course-wish__submit {min-height:56px;gap:12px}
.course-wish__form button:disabled {cursor:default;opacity:.65}
.course-wish__month:has(input:disabled) {cursor:default;opacity:.65}
.course-wish__status {margin:22px 0 0;padding:18px 20px;border:1px solid var(--coral-ink);border-radius:var(--r-sm);color:var(--text);background:var(--coral-dim);font-size:18px;line-height:1.8;overflow-wrap:anywhere}
.course-wish__note {color:var(--muted);font-size:15px;line-height:1.8;margin:18px 0 0}
.course-wish__next {display:flex;align-items:center;flex-wrap:wrap;gap:4px 20px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;font-size:16px;color:var(--muted)}
.course-wish__next a {display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.course-wish__reference {max-width:960px;margin:28px auto 0}
.course-wish__reference-price {color:var(--muted);font-size:18px;line-height:1.8;margin:20px 0}
.course-wish__reference-price strong {color:var(--text)}
.course-wish-sticky__text {gap:5px;color:#fff;font-size:16px;min-width:0}
.course-wish-sticky__text>strong {font-size:18px}
.course-wish-sticky__text>span {color:rgba(255,255,255,.8);font-size:13px}

.course-poll__actions {display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-top:24px}
.course-poll__refresh {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--coral-ink);font:600 16px var(--font-body);text-decoration:underline;text-underline-offset:5px;cursor:pointer}
.course-poll {margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.course-poll__heading {display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
.course-poll__heading h3 {font-size:22px;font-weight:700;line-height:1.5;margin:0;color:var(--text)}
.course-poll__live {display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:14px}
.course-poll__live>span {width:7px;height:7px;background:var(--coral-ink);border-radius:50%}
.course-poll__total {margin:14px 0 22px;font-size:16px;color:var(--muted)}
.course-poll__total strong {font:600 22px var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums}
.course-poll__rows {display:grid;gap:20px}
.course-poll__row {min-width:0}
.course-poll__row-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;line-height:1.5}
.course-poll__month {font-size:17px;font-weight:600;color:var(--text)}
.course-poll__metrics {display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:3px 12px;min-width:0;text-align:right;overflow-wrap:anywhere}
.course-poll__votes {font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.course-poll__percentage {font:600 18px var(--font-mono);color:var(--coral-ink);font-variant-numeric:tabular-nums}
.course-poll__row progress {display:block;appearance:none;-webkit-appearance:none;width:100%;height:10px;border:0;border-radius:var(--r-pill);overflow:hidden;background:var(--bg-soft);color:var(--coral-ink)}
.course-poll__row progress::-webkit-progress-bar {background:var(--bg-soft);border-radius:var(--r-pill)}
.course-poll__row progress::-webkit-progress-value {background:var(--coral-ink);border-radius:var(--r-pill)}
.course-poll__row progress::-moz-progress-bar {background:var(--coral-ink);border-radius:var(--r-pill)}
.course-poll__empty {margin:22px 0 0;color:var(--text);font-size:17px;line-height:1.7}
.course-poll__other,.course-poll__explanation {font-size:14px;line-height:1.8;color:var(--muted);margin:18px 0 0}

.course-wish [hidden] {display:none!important}
@media (max-width:640px) {
 .course-wish {padding:26px 20px}
 .course-wish__head .section__title {font-size:28px;text-wrap:initial}
 .course-wish__head>p {font-size:18px}
 .course-wish__choices {grid-template-columns:1fr 1fr;gap:12px}
 .course-wish__month-body {min-height:154px;padding:16px}
 .course-wish__custom-toggle {grid-column:1/-1;min-height:88px;padding:16px;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:18px;row-gap:0}
 .course-wish__custom-toggle>strong {font-size:24px;line-height:1.4;grid-column:2;grid-row:1}
 .course-wish__custom-toggle .course-wish__choice-bottom {grid-column:1/-1;margin-top:4px}
 .course-wish__choice-bottom {font-size:14px}
 .course-wish__submit {width:100%;font-size:17px}
 .course-poll__actions {gap:6px;margin-top:22px}
 .course-poll__heading h3 {font-size:21px}
 .course-poll__row-heading {gap:10px}
 .course-poll__month {font-size:16px}
 .course-poll__metrics {gap:2px 8px}
 .course-wish__month-add .btn {width:100%;min-height:48px}
 .course-wish__next {gap:0 18px}
 .course-wish__next>span {flex-basis:100%}
 .home-wish-intro__title {font-size:30px}
 .home-wish-months {gap:2px 14px}
 .home-wish-months a {font-size:15px}
}
@media (max-width:359px) {
 .course-wish {padding:24px 14px}
 .course-wish__choices {gap:10px}
 .course-wish__month-body {padding:12px;min-height:148px}
 .course-wish__month-body>strong {font-size:36px}
 .course-wish__choice-bottom {font-size:13px;gap:4px}
 .course-wish__tick {width:22px;height:22px}
 .course-wish-sticky__text>span {font-size:12px}
}
@media (prefers-reduced-motion:reduce) {
 .course-wish__month-body,.course-wish__custom-toggle {transition:none}
}
