* { box-sizing: border-box; }
body { margin: 0; font-family: "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif; background: #f3f6f1; color: #222; }
.card { max-width: 380px; margin: 40px auto; padding: 24px 24px 28px; background: #fff; border-radius: 10px; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.brand { margin: 0 0 12px; }
.brand a { display: inline-block; line-height: 0; }
.brand img { width: 126px; height: 62px; display: block; }   /* 與網站首頁標題列的 logo 同大小 */
h1 { margin: 0 0 16px; font-size: 1.4rem; }
label { display: block; margin: 14px 0 4px; font-size: .95rem; }
input { width: 100%; padding: 10px 12px; border: 1px solid #bbb; border-radius: 6px; font-size: 1rem; }
input:focus { outline: 2px solid #4a9d3f; border-color: #4a9d3f; }
button { width: 100%; margin-top: 20px; padding: 11px; border: 0; border-radius: 6px; background: #4a9d3f; color: #fff; font-size: 1rem; cursor: pointer; }
button:hover { background: #3d8434; }
button.secondary { background: #777; }
.error { padding: 10px 12px; border-radius: 6px; background: #fdecea; color: #b3261e; }
.ok { padding: 10px 12px; border-radius: 6px; background: #e8f5e6; color: #256b1d; }
a { color: #3d8434; }
.hint { margin: 0; color: #666; font-size: .9rem; }
.note { margin-top: 18px; color: #666; font-size: .85rem; }
.info { padding-left: 1.2em; }
.card.wide { max-width: 560px; }
h2 { margin: 24px 0 4px; padding-top: 12px; border-top: 1px solid #e3e8e0; font-size: 1.05rem; color: #3d8434; }
select { width: 100%; padding: 10px 12px; border: 1px solid #bbb; border-radius: 6px; font-size: 1rem; background: #fff; }
select:focus { outline: 2px solid #4a9d3f; border-color: #4a9d3f; }
fieldset { margin: 14px 0 0; padding: 0; border: 0; }
legend { padding: 0; font-size: .95rem; }
label.inline { display: inline-block; margin: 6px 16px 0 0; }
label.inline input, label.check input { width: auto; margin-right: 6px; }
label.check { margin-top: 20px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.error ul { margin: 0; padding-left: 1.2em; }
@media (max-width: 480px) { .card { margin: 0; border-radius: 0; min-height: 100vh; box-shadow: none; } }
