*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#faf9f7;--color-surface:#fff;--color-primary:#4a7c59;--color-primary-light:#6aab7a;--color-text:#2d2d2d;--color-text-muted:#888;--color-border:#e0ddd8;--color-error:#c0392b;--radius:12px;--shadow:0 2px 12px #00000014;font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif}body{background:var(--color-bg);color:var(--color-text);min-height:100dvh}button{cursor:pointer;font:inherit;background:0 0;border:none}a{color:inherit;text-decoration:none}.page{max-width:480px;margin:0 auto;padding:0 16px 80px}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius);text-align:center;letter-spacing:.5px;width:100%;padding:14px;font-size:16px;font-weight:600;transition:background .2s;display:block}.btn-primary:hover{background:var(--color-primary-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.section-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:13px}.divider{background:var(--color-border);height:1px;margin:20px 0}.error-msg{color:var(--color-error);margin-top:8px;font-size:14px}
