:root{--green:#045137;--orange:#C0560B;--ink:#1A1A1A;--muted:#565656;--line:#E3E6E4;--ctl:#767676;--mint:#F1F9F6;--err:#B3261E;--ok:#045137}
*{box-sizing:border-box}
body{margin:0;background:var(--mint);color:var(--ink);font-family:'Noto Sans TC',system-ui,sans-serif;font-size:15px;line-height:1.5}
a{color:var(--orange)}
button,input{font-family:inherit}
button{color:inherit}
header{border-bottom:1px solid var(--line)}
.bar{max-width:1240px;margin:0 auto;padding:0 24px;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;color:var(--ink)}
.brand b{font-family:'Noto Serif TC',serif;font-weight:600;font-size:22px}
.brand span{font-size:22px;color:var(--orange);font-weight:700;padding-left:12px;border-left:1px solid #D9C8B2}
.back{font-size:14px;color:var(--muted);text-decoration:none}
main{display:flex;justify-content:center;padding:28px 16px 56px}
.card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:16px;padding:32px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(42,36,32,.06)}
h1{margin:0;font-size:26px;font-weight:700}
.sub{margin:4px 0 0;font-size:14px;color:var(--muted)}
.notice{padding:10px 12px;border-radius:12px;background:var(--mint);font-size:14px}
label{display:flex;flex-direction:column;gap:6px}
.lab{display:flex;justify-content:space-between;font-size:14px;font-weight:700}
input[type=email],input[type=text],input[type=password]{height:46px;padding:0 14px;border:1px solid var(--ctl);border-radius:12px;background:#fff;font-size:15px;color:var(--ink);width:100%}
input.bad{border-color:var(--err)}
.pw{position:relative}.pw input{padding-right:64px}
.pw button{position:absolute;right:8px;top:8px;height:30px;padding:0 8px;border:none;background:none;color:var(--muted);font-size:13px;cursor:pointer}
.err{font-size:13px;color:var(--err)}
.link{padding:0;border:none;background:none;color:var(--orange);font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer}
.btn{width:100%;min-height:48px;border:none;border-radius:12px;background:var(--orange);color:#fff;font-size:16px;font-weight:700;cursor:pointer}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--ctl);font-weight:500;font-size:15px;display:flex;align-items:center;justify-content:center;gap:10px}
.or{display:flex;align-items:center;gap:12px;color:#8A7D72;font-size:13px}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.foot{margin:0;text-align:center;font-size:14px;color:var(--muted)}
.rules{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--muted);margin:0;padding:0;list-style:none}
.rules li::before{content:"○ "}.rules li.ok{color:var(--ok)}.rules li.ok::before{content:"✓ "}
.check{flex-direction:row;align-items:flex-start;gap:10px;font-size:14px}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--orange)}
.big{font-weight:700;word-break:break-all}
[hidden]{display:none!important}
@media (max-width:520px){.bar{padding:0 16px}.brand{gap:8px;white-space:nowrap}.brand b{font-size:17px}.brand span{font-size:17px;padding-left:8px}.back{display:none}.card{padding:24px 20px}}
